Nig*_*mas 32 sql oracle constraints composite-key unique-constraint
我有一个包含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)
Run Code Online (Sandbox Code Playgroud)
但它正在检查是否存在任何一个约束而不是检查唯一键约束的组合.
saa*_*rim 54
在这些列上创建唯一键
ALTER TABLE YourTable
add CONSTRAINT YourTable_unique UNIQUE (B, C, D);
Run Code Online (Sandbox Code Playgroud)
首先,您应该使用下面的ALTER Query来删除现有的Constraint.
ALTER TABLE table_name
DROP CONSTRAINT myUniqueConstraint;
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用关键字UNIQUE以及所需列的组合来创建UNIQUE约束.
例如:
ALTER TABLE table_name
ADD CONSTRAINT myUniqueConstraint UNIQUE(B, C, D);
Run Code Online (Sandbox Code Playgroud)