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 约束,请使用以下 SQL 查询。
    
    ALTER TABLE CUSTOMERS
       DROP CONSTRAINT myUniqueConstraint;
    
    如果您使用的是 MySQL,那么您可以使用以下语法 -
    
    ALTER TABLE CUSTOMERS
       DROP INDEX myUniqueConstraint;