SQL UNIQUE 約束
SQL UNIQUE 約束
The UNIQUE constraint ensures that all values in a column are different. (UNIQUE 約束確保列中的所有值都不同。)
Both the UNIQUE and PRIMARY KEY constraints provide a guarantee for uniqueness for a column or set of columns. (UNIQUE 和 PRIMARY KEY 約束都為列或一組列的唯一性提供了保證。)
A PRIMARY KEY constraint automatically has a UNIQUE constraint. (PRIMARY KEY 約束自動具有 UNIQUE 約束。)
However, you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table. (但是,每個表可以有多個 UNIQUE 約束,但只能有一個 PRIMARY KEY 約束。)
SQL UNIQUE Constraint on CREATE TABLE (建立表時新增 SQL UNIQUE 約束)
The following SQL creates a UNIQUE constraint on the "ID" column when the "Persons" table is created (以下 SQL 在建立 "Persons" 表時,在 "ID" 列上建立 UNIQUE 約束)
SQL Server / Oracle / MS Access
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MySQL
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);To name a UNIQUE constraint, and to define a UNIQUE constraint on multiple columns, use the following SQL syntax (要命名 UNIQUE 約束,並在多個列上定義 UNIQUE 約束,請使用以下 SQL 語法)
MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID,LastName)
);SQL UNIQUE Constraint on ALTER TABLE (ALTER TABLE 時新增 SQL UNIQUE 約束)
To create a UNIQUE constraint on the "ID" column when the table is already created, use the following SQL (要在表已建立後,在 "ID" 列上建立 UNIQUE 約束,請使用以下 SQL)
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons
ADD UNIQUE (ID);To name a UNIQUE constraint, and to define a UNIQUE constraint on multiple columns, use the following SQL syntax (要命名 UNIQUE 約束,並在多個列上定義 UNIQUE 約束,請使用以下 SQL 語法)
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);DROP a UNIQUE Constraint (刪除 UNIQUE 約束)
To drop a UNIQUE constraint, use the following SQL (要刪除 UNIQUE 約束,請使用以下 SQL)
MySQL
ALTER TABLE Persons
DROP INDEX UC_Person;
SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;