SQL PRIMARY KEY 约束
SQL PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
PRIMARY KEY 约束确保值的唯一性,且不能包含 NULL 值(它是 UNIQUE 约束和 NOT NULL 约束的组合)。
一个表只能有一个 PRIMARY KEY 约束。主键可以是单个列,也可以是多个列的组合。
提示:主键是其他表中 FOREIGN KEY 约束的目标(这强制了两个表之间数据的参照完整性)。
CREATE TABLE 上的 PRIMARY KEY
以下 SQL 语句在创建 Persons 表时为 ID 列创建了 PRIMARY KEY:
CREATE TABLE Persons (
ID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
多列上的 PRIMARY KEY
要在多个列上定义未命名的 PRIMARY KEY 约束,请使用以下 SQL 语法:
CREATE TABLE Persons (
ID int,
LastName varchar(255),
FirstName varchar(255),
Age int,
PRIMARY KEY (ID, LastName)
);
注意:在上面的例子中,PRIMARY KEY 值由两列(ID + LastName)组成。
要在多列上定义命名的 PRIMARY KEY 约束,请使用以下 SQL 语法:
CREATE TABLE Persons (
ID int,
LastName varchar(255),
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);
注意:在上面的例子中,PRIMARY KEY 被命名为 PK_Person,其值由两列(ID + LastName)组成。
ALTER TABLE 上的 PRIMARY KEY
当表已创建后,要在 ID 列上创建 PRIMARY KEY 约束,请使用以下 SQL:
ALTER TABLE Persons ADD PRIMARY KEY (ID);
多列上的 PRIMARY KEY
要在多列上定义命名的 PRIMARY KEY 约束,请使用以下 SQL 语法:
ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);
注意:使用 ALTER TABLE 添加主键时,主键列在创建表时必须已声明为 NOT NULL。
删除 PRIMARY KEY 约束
要删除 PRIMARY KEY 约束,请使用以下 SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT PK_Person;
MySQL:
ALTER TABLE Persons DROP PRIMARY KEY;