sql - 如何为 Oracle 中的列组合提供唯一约束?

标签 sql oracle constraints unique-constraint composite-key

我有一个有 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: Unique Constraints

关于sql - 如何为 Oracle 中的列组合提供唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17343516/

相关文章:

c# - 使用大型数据集读取/写入 sql server 的最快方法?

涉及多列的 MySQL 约束

ios - 尾随约束

ios - AVPlayerViewController - 无自动布局 - 无法同时满足约束条件。

sql - 一般的 PostgreSQL 或 SQL : LEFT OUTER JOIN and WHERE condition behave unexpectedly (for me? )

php - 使用 PHP 从数据库生成 HTML 表单

sql - 根据一个 SQL 表中的数据更新另一表中的数据

sql - PL/SQL - 在 FOR IN LOOP 中删除当前记录

sql - 有效地选择数据sql

database - oracle新创建的用户权限问题?