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