CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
);
CREATE TABLE Persons (
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
CREATE TABLE Persons (
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id, LastName)
);
註:複合主鍵 pk_PersonID 由 P_Id 和 LastName 兩欄組成,組合值唯一。
ALTER TABLE Persons ADD PRIMARY KEY (P_Id);
-- 命名 + 複合
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id, LastName);
重要:使用 ALTER TABLE 加主鍵時,該欄位必須在建表時已宣告為 NOT NULL。
| 資料庫 | 語法 |
|---|---|
| MySQL | ALTER TABLE Persons DROP PRIMARY KEY |
| SQL Server / Oracle / Access | ALTER TABLE Persons DROP CONSTRAINT pk_PersonID |
主鍵是資料表的核心識別機制,設計時請遵循「最小、穩定、不為 NULL」原則。