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;