天天看點

資料庫必知詞彙:唯一性限制(UNIQUE)

UNIQUE 限制唯一辨別資料庫表中的每條記錄。UNIQUE 和 PRIMARY KEY 限制均為列或列集合提供了唯一性的保證。PRIMARY KEY 限制擁有自動定義的 UNIQUE 限制。

請注意,每個表可以有多個 UNIQUE 限制,但是每個表隻能有且隻有一個 PRIMARY KEY 限制。

(1) CREATE TABLE 時的 SQL UNIQUE 限制

下面的 SQL 在 "Persons" 表建立時在 "P_Id" 列上建立 UNIQUE 限制:

MySQL:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

SQL Server / Oracle:

P_Id int NOT NULL UNIQUE,

City varchar(255)

如需命名 UNIQUE 限制,并定義多個列的 UNIQUE 限制,請使用下面的 SQL 文法(MySQL / SQL Server / Oracle):

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

(2) ALTER TABLE 時的 SQL UNIQUE 限制

當表已被建立時,如需在 "P_Id" 列建立 UNIQUE 限制,請使用下面的 SQL:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

如需命名 UNIQUE 限制,并定義多個列的 UNIQUE 限制,請使用下面的 SQL 文法:

MySQL / SQL Server / Oracle:

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

(3) 撤銷 UNIQUE 限制

如需撤銷 UNIQUE 限制,請使用下面的 SQL:

DROP INDEX uc_PersonID

DROP CONSTRAINT uc_PersonID

資料來源:

SQL 限制(Constraints)

https://www.runoob.com/sql/sql-constraints.html

SQL UNIQUE 限制

https://www.runoob.com/sql/sql-unique.html