唯一約束防止在特定的列有相同的兩個紀錄值。 在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;