最新的Web開發教程
 

SQL唯一約束


SQL唯一約束

UNIQUE約束唯一標識數據庫表中的每個記錄。

UNIQUE和PRIMARY KEY約束既提供了獨特的列或列集的保證。

主鍵約束自動上定義的唯一約束。

請注意,您可以為每個表中的多個UNIQUE約束,但是每個表只能有一個主鍵約束。


SQL唯一約束CREATE TABLE

下面的SQL創建的UNIQUE約束"P_Id"欄時, "Persons"是創建的表:

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

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)
)

為了讓UNIQUE約束的命名,並為多個列定義UNIQUE約束,可以使用下面的SQL語法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

SQL唯一約束ALTER TABLE

要在創建一個唯一約束"P_Id"時,已創建的表列,請使用以下SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id)

為了讓UNIQUE約束的命名,並為多個列定義UNIQUE約束,可以使用下面的SQL語法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

要刪除唯一約束

要刪除UNIQUE約束,使用下面的SQL:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID