UNIQUE 唯一限制 (SQL UNIQUE Constraint)
UNIQUE 用來保證欄位在資料表中的唯一性,約束資料表中的欄位不能有重複的資料。
一個資料表可有多個 UNIQUE 欄位,此外 UNIQUE 欄位中可以接受 NULL 值。
假設我們要對「customer」資料表限制「C_Id」欄位不能有重複值存在:
在建立資料表時 CREATE TABLE...
CREATE TABLE customer (
C_Id INT NOT NULL UNIQUE,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20)
);
或這樣寫:
CREATE TABLE customer (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
UNIQUE (C_Id)
);
替唯一鍵命名與多欄位的唯一限制
我們限制 C_Id 及 Name 這兩個欄位共同唯一,CONSTRAINT 後面接著的即是此唯一鍵的名稱。
CREATE TABLE customer (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
CONSTRAINT u_Customer_Id UNIQUE (C_Id, Name)
);
更改資料表限制 ALTER TABLE...
ALTER TABLE customer ADD UNIQUE (C_Id);
替唯一鍵命名與多欄位的唯一限制:
ALTER TABLE customer
ADD CONSTRAINT u_Customer_Id UNIQUE (C_Id, Name);
移除資料表限制 ALTER TABLE...
MySQL
ALTER TABLE customer DROP INDEX u_Customer_Id;
SQL Server / Oracle / MS Access
ALTER TABLE customer DROP CONSTRAINT u_Customer_Id;