唯一約束防止在特定的列有相同的兩個(gè)紀(jì)錄值。 在CUSTOMERS表,例如,可能希望以防止兩個(gè)或更多的人有相同的年齡。
例如,下面的SQL創(chuàng)建一個(gè)新的表名為CUSTOMERS,并添加了五列。在這里,AGE列設(shè)置為唯一的,所以不能有兩個(gè)記錄使用相同的年齡:
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表已經(jīng)創(chuàng)建,然后要將唯一約束添加到AGE列,類似如下的聲明:
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL UNIQUE;
還可以使用下面的語法,它支持命名的多個(gè)列的約束:
ALTER TABLE CUSTOMERS ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);
要?jiǎng)h除UNIQUE約束,請使用以下SQL:
ALTER TABLE CUSTOMERS DROP CONSTRAINT myUniqueConstraint;
如果正在使用MySQL,那么可以使用下面的語法:
ALTER TABLE CUSTOMERS DROP INDEX myUniqueConstraint;