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;
广告