繁体   English   中英

如何为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);

Oracle / PLSQL:唯一约束

首先,您应该使用下面的ALTER Query来删除现有的Constraint。

ALTER TABLE table_name
   DROP CONSTRAINT myUniqueConstraint;

现在,您可以使用关键字UNIQUE和所需列的组合来创建UNIQUE约束。

例如:

ALTER TABLE table_name
   ADD CONSTRAINT myUniqueConstraint UNIQUE(B, C, D);

这里有UNIQUE约束的详细解释。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM