PRIMARY KEY 主鍵限制 (SQL PRIMARY KEY Constraint)

PRIMARY KEY 用來保證欄位在資料表中的唯一性,主鍵欄位中的每一筆資料在資料表中都必需是獨一無二的。
PRIMARY KEY有點類似UNIQUE加上NOT NULL
一個資料表中只能有一個PRIMARY KEY;但是可以有多個UNIQUE

PRIMARY KEY Constraint

假設我們要將「customer」資料表中的「C_Id」欄位設為主鍵:

在建立資料表同時 - CREATE TABLE...
MySQL
CREATE TABLE customer
(
  C_Id INT NOT NULL,
  Name VARCHAR(50) NOT NULL,
  Address VARCHAR(255),
  Phone VARCHAR(20),
  PRIMARY KEY (C_Id)
);

MySQL / SQL Server / Oracle / MS Access
CREATE TABLE customer
(
  C_Id INT NOT NULL PRIMARY KEY,
  Name VARCHAR(50) NOT NULL,
  Address VARCHAR(255),
  Phone VARCHAR(20)
);

替主鍵命名與多欄位的組合鍵
MySQL / SQL Server / Oracle / MS Access
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...
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE customer
ADD PRIMARY KEY (C_Id);

替主鍵命名與多欄位的組合鍵
MySQL / SQL Server / Oracle / MS Access
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;