SQL UNIQUE 约束

接下来,我们来讲解 SQL 约束中的 唯一 约束,UNIQUE


SQL UNIQUE 约束

UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUEPRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。


新建表时创建 UNIQUE 约束

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:

MySQL:
  1. CREATE TABLE Persons
  2. (
  3. Id_P int NOT NULL,
  4. LastName varchar(255) NOT NULL,
  5. FirstName varchar(255),
  6. Address varchar(255),
  7. City varchar(255),
  8. UNIQUE (Id_P)
  9. )
SQL Server / Oracle / MS Access:
  1. CREATE TABLE Persons
  2. (
  3. Id_P int NOT NULL UNIQUE,
  4. LastName varchar(255) NOT NULL,
  5. FirstName varchar(255),
  6. Address varchar(255),
  7. City varchar(255)
  8. )

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
  1. CREATE TABLE Persons
  2. (
  3. Id_P int NOT NULL,
  4. LastName varchar(255) NOT NULL,
  5. FirstName varchar(255),
  6. Address varchar(255),
  7. City varchar(255),
  8. CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
  9. )

修改表时创建 UNIQUE 约束

当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:

MySQL / SQL Server / Oracle / MS Access:
  1. ALTER TABLE Persons
  2. ADD UNIQUE (Id_P)

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
  1. ALTER TABLE Persons
  2. ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

删除 UNIQUE 约束

如需删除 UNIQUE 约束,请使用下面的 SQL:

MySQL:
  1. ALTER TABLE Persons
  2. DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
  1. ALTER TABLE Persons
  2. DROP CONSTRAINT uc_PersonID

分类导航