![](/img/trans.png)
[英]How to give a unique constraint to a combination of a column and a fixed value in Oracle?
[英]How to give a unique constraint to a combination of columns in Oracle?
我有一個包含4列的表
每列將是A,B,C,D
A列是主鍵。 B列具有唯一的名稱約束。
現在我想刪除B列的唯一約束,並通過組合B,C和D列來提供唯一約束。因此,該表將只允許在B,C和D列中具有特定值的一行。
我怎樣才能給出這種類型的約束?
我嘗試給出復合唯一鍵,如:
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 Query來刪除現有的Constraint。
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;
CREATE UNIQUE INDEX constraint_name ON table_name(B,C,D)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.