サポート > リポジトリ > Appendix > 一意制約の詳細

一意制約は利用するデータベースによって挙動が異なる場合があります。

一意制約設定を行った項目の一部を未入力(null)として保存した場合の動作は、データベースによって異なります。

項目A, B, Cに一意制約を定義します。ここで A:aaa, B:null, C:ccc というデータを登録します。 その後、A:aaa, B:null, C:ccc のデータを再び登録しようとすると、次のようになります。

内蔵データベース(HSQLDB)、PostgreSQL
登録可能。
SQLServer
一意制約違反で登録に失敗する。

詳細は、ご利用のデータベースのマニュアルをお読みください。

ここで指定した一意制約の設定は、次のファイルで確認できます。

wagbydesigner/webapps/wagbydesigner/WEB-INF/env/work/dbschema/createddl/モデルID.ddl

テキストエディタでファイルの内容を確認することができます。次の DDL が含まれています。

alter table "モデルID"
   add constraint jfcuk_モデルID_設定した名前 unique ("項目名");

init_db.bat を実行すると、この alter 文も同時に実行されます。

一意制約名は、利用するデータベースが許可する制約名の最大長に合わせて調整されます。

具体的には最大長を超える名前の場合、短縮されます。(短縮の結果、重複する場合には、これを重複しないように一意な名前を割り当てます。これはテーブル名や項目名でも同様です。)