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

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;