天天看點

資料庫必知詞彙:主鍵限制(PRIMARY KEY)

PRIMARY KEY 限制唯一辨別資料庫表中的每條記錄。主鍵必須包含唯一的值,且主鍵列不能包含 NULL 值。每個表都應該有一個主鍵,并且每個表隻能有一個主鍵。

(1) CREATE TABLE 時的 SQL PRIMARY KEY 限制

下面的 SQL 在 "Persons" 表建立時在 "P_Id" 列上建立 PRIMARY KEY 限制:

MySQL:

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)

)

SQL Server / Oracle:

P_Id int NOT NULL PRIMARY KEY,

City varchar(255)

如需命名 PRIMARY KEY 限制,并定義多個列的 PRIMARY KEY 限制,請使用下面的 SQL 文法:

CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

注釋:在上面的執行個體中,隻有一個主鍵 PRIMARY KEY(pk_PersonID)。然而,pk_PersonID 的值是由兩個列(P_Id 和 LastName)組成的。

(2) ALTER TABLE 時的 SQL PRIMARY KEY 限制

當表已被建立時,如需在 "P_Id" 列建立 PRIMARY KEY 限制,請使用下面的 SQL:

ALTER TABLE Persons

ADD PRIMARY KEY (P_Id)

ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

注釋:如果您使用 ALTER TABLE 語句添加主鍵,必須把主鍵列聲明為不包含 NULL 值(在表首次建立時)。

(3) 撤銷 PRIMARY KEY 限制

如需撤銷 PRIMARY KEY 限制,請使用下面的 SQL:

DROP PRIMARY KEY

DROP CONSTRAINT pk_PersonID

資料來源:

SQL 限制(Constraints)

https://www.runoob.com/sql/sql-constraints.html

SQL PRIMARY KEY 限制

https://www.runoob.com/sql/sql-primarykey.html