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;