4列のテーブルがあります
各列はA、B、C、Dになります
列Aは主キーです。列Bには一意の名前の制約があります。
ここで、列Bの一意の制約を削除し、列B、C、およびDを組み合わせて一意の制約を指定します。したがって、テーブルでは、列B、C、およびDの特定の値を持つ1つの行のみが許可されます。
このタイプの制約をどのように与えることができますか?
私は次のような複合ユニークキーを与えようとしました:
ALTER TABLE TABLENAME ADD CONSTRAINT CONSTRAINT_NAME UNIQUE (COLUMN_B, COLUMN_C, COLUMN_D)
ただし、一意キー制約の組み合わせをチェックするのではなく、制約のいずれかが存在するかどうかをチェックしています。
それらの列に一意のキーを作成します
ALTER TABLE YourTable
add CONSTRAINT YourTable_unique UNIQUE (B, C, D);
まず、以下のALTERクエリを使用して、既存の制約を削除する必要があります。
ALTER TABLE table_name
DROP CONSTRAINT myUniqueConstraint;
これで、必要な列の組み合わせでキーワードUNIQUEを使用して、 [〜#〜] unique [〜#〜] 制約を作成できます。
例:
ALTER TABLE table_name
ADD CONSTRAINT myUniqueConstraint UNIQUE(B, C, D);
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
Table_nameのCREATE UNIQUE INDEX constraint_name(B、C、D)