SQL PRIMARY KEY 约束

    PRIMARY KEY 约束唯一标识数据库表中的每条记录。

    主键必须包含唯一的值。

    主键列不能包含NULL值。

    每个表都应该有一个主键,并且每个表只能有一个主键。

 

CREATE TABLE 时的 SQL PRIMARY KEY 约束

下面的SQL在"Persions"表创建时在"P_ld"列上创建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 / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如需命名PRIMARY KEY 约束,并定义多个列的PRIMARY KEY 约束, 请使用下面的SQL语法:

 

MySQL / SQL Server/ Oracle/ MS Access

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)
)

注释:在上面的例子中,只有一个主键PRIMARY KEY(pk_PersonID)。然而,pk_PersonID的值是由两个列(P_Id和LastName)组成的。

 

 

ALTER TABLE 时的 SQL PRIMARY KEY 约束

当表已被创建时,如需在"P_Id"列创建PRIMARY KEY 约束,请使用下面的SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD PRIMARY KEY (P_Id)

如需命名PRIMARY KEY约束,并定义多个列的PRIMARY KEY 约束,请使用下面的SQL语法:

 

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。

 

 

 

撤销PRIMARY KEY 约束

如需撤销PRIMARY KEY 约束,请使用下面的SQL:

MySQL:

ALTER TABLE Persons DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT pk_PersonID


笔记列表

 

 

撤销PRIMARY KEY约束时,不论约束条件为一列还是多列,对于MySQL,撤销都是

ALTER TABLE Persons DROP PRIMARY KEY

 

由于PRIMARY KEY唯一性,MYSQL处理办法简单。

但对于 SQL Server / Oracle / MS Access, 一个列

ALTER TABLE Persons DROP CONSTRAINT P_Id

若起约束名,也可如下多个列

 

ALTER TABLE Persons DROP CONSTRAINT pk_PersonID

 

参考:

https://www.yuque.com/docs/share/31a47ae0-804b-4c07-8123-bca00a2d9206

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值