位置:首頁 > 數據庫 > SQL教學 > SQL唯一約束

SQL唯一約束

唯一約束防止在特定的列有相同的兩個紀錄值。 在CUSTOMERS表,例如,可能希望以防止兩個或更多的人有相同的年齡。

實例:

例如,下麵的SQL創建一個新的表名為CUSTOMERS,並添加了五列。在這裡,AGE列設置為唯一的,所以不能有兩個記錄使用相同的年齡:

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列,類似如下的聲明:

ALTER TABLE CUSTOMERS
   MODIFY AGE INT NOT NULL UNIQUE;

還可以使用下麵的語法,它支持命名的多個列的約束:

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

刪除唯一約束:

要刪除UNIQUE約束,請使用以下SQL:

ALTER TABLE CUSTOMERS
   DROP CONSTRAINT myUniqueConstraint;

如果正在使用MySQL,那麼可以使用下麵的語法:

ALTER TABLE CUSTOMERS
   DROP INDEX myUniqueConstraint;