SQL - UNIQUE約束



UNIQUE 約束防止兩條記錄在同一列中具有相同的值。例如,在 CUSTOMERS 表中,您可能希望防止兩個人擁有相同的年齡。

示例

例如,以下 SQL 查詢建立一個名為 CUSTOMERS 的新表並新增五列。在此,AGE 列設定為 UNIQUE,因此您不能擁有兩條具有相同年齡的記錄。

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL UNIQUE,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

如果 CUSTOMERS 表已經建立,則要向 AGE 列新增 UNIQUE 約束,您可以編寫如下程式碼塊中給出的查詢語句。

ALTER TABLE CUSTOMERS
MODIFY AGE INT NOT NULL UNIQUE;

您還可以使用以下語法,該語法也支援在多列中命名約束。

ALTER TABLE CUSTOMERS
ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);

刪除 UNIQUE 約束

要刪除 UNIQUE 約束,請使用以下 SQL 查詢。

ALTER TABLE CUSTOMERS
DROP CONSTRAINT myUniqueConstraint;

如果您使用的是 MySQL,則可以使用以下語法:

ALTER TABLE CUSTOMERS
DROP INDEX myUniqueConstraint;
廣告