PRIMARY KEY 主鍵限制 (SQL PRIMARY KEY Constraint)
PRIMARY KEY 用來保證欄位在資料表中的唯一性,主鍵欄位中的每一筆資料在資料表中都必需是獨一無二的。
PRIMARY KEY 有點類似 UNIQUE 加上 NOT NULL。
一個資料表中只能有一個 PRIMARY KEY,但是可以有多個 UNIQUE。
假設我們要將 customer 資料表中的 C_Id 欄位設為主鍵:
在建立資料表時 CREATE TABLE...
CREATE TABLE customer (
C_Id INT NOT NULL PRIMARY KEY,
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),
PRIMARY KEY (C_Id)
);
替主鍵命名與多欄位的組合鍵 (Composite Primary Keys):
CREATE TABLE customer (
C_Id INT NOT NULL,
Name VARCHAR(50) NOT NULL,
Address VARCHAR(255),
Phone VARCHAR(20),
CONSTRAINT pk_Customer_Id PRIMARY KEY (C_Id, Name)
);
我們限制 C_Id 及 Name 這兩個欄位為主鍵,CONSTRAINT 後面接著的即是此主鍵的名稱。
當主鍵包含多個欄位時,我們稱之為組合鍵 (Composite Key)。
更改資料表限制 ALTER TABLE...
ALTER TABLE customer ADD PRIMARY KEY (C_Id);
替主鍵命名與多欄位的組合鍵:
ALTER TABLE customer
ADD CONSTRAINT u_Customer_Id PRIMARY KEY (C_Id, Name);
移除資料表限制 ALTER TABLE...
MySQL
ALTER TABLE customer DROP PRIMARY KEY;
SQL Server / Oracle / MS Access
ALTER TABLE customer DROP CONSTRAINT pk_PersonID;