簡體   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