“你根本忘不了一个你真真正正喜欢的人 你以为错过的是一个人 但其实错过的是整个人生”
原创作者:是飘飘呀!
博客地址:https://blog.csdn.net/weixin_44216392
PRIMARY KEY 约束
PRIMARY KEY 约束(也叫主键约束),它是唯一标识数据库表中的每条记录。
- 主键必须包含唯一的值。
- 主键列不能包含 NULL 值。
- 每个表都应该有一个主键,并且每个表只能有一个主键。
添加主键约束的两种写法:
- 创建表的时候进行设置主键约束:
-- 第一种写法
create table tb1(
p_id int not null primary key,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255)
);
--第二种写法
create table tb2(
p_id int not null,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255),
primary key(p_id)
);
- 当我们需要使用多个列来组成一个主键约束时:
create table tb3(
p_id int not null,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255),
constraint pk_tb3ID primary key(p_id,t_name)
);
在这里我们需要注意:前文提到每个表都应该有一个主键,且只能有一个主键,那么在上面的sql语句中,这唯一的一个主键名叫做pk_tb3ID ,但是它的值是由两个列(p_id和t_name)的值来组成的。
- 如果在表已经被创建,需要为表添加主键约束时,我们可以使用**alter…add…**关键字来进行操作:
-- 先创建表tb4
create table tb4(
p_id int not null,
t_name varchar (50) not null,
t_age int,
t_sex varchar(50),
t_city varchar(255)
);
-- 为p_id添加主键
alter table tb4 add primary key (p_id);
/* 添加由多列组成的主键约束
(在这里我演示的是同一个表tb4,所以需要先把p_id的主键约束删除,才可以再添加多列组成的主键约束)*/
alter table tb4 add constraint pk_tb4ID primary key(p_id,t_name)
-- pk_tb4ID 是主键名,前文有说过,这里不做解释
删除主键约束
在我们需要删除主键约束的时候使用**alter…drop…**关键字来进行删除:
--MySQL
--删除单列组成的主键约束
alter table tb1 drop primary key
/*
alter table tb1 drop primary key
OK
时间: 0.044s
*/
删除多列组成的主键约束:
--SQL Server
alter table tb4 drop constraint pk_tb4ID
在这里我们需要注意的是:
在MySQL中无论是单列组成的主键约束还是多列组成的主键约束都是使用下面语句,但是此语句并不能在SQL Server中使用;
alter table [表名] drop primary key
此语句在在SQL Server中使用时会报语法错:
同理:下面语句是删除多列组成的主键约束,它也不能在MySQL中去使用,否则也同样会报错的;
alter table [表名] drop constraint [主键名]
总结来说就是:
MySQL删除主键直接使用
alter table [表名] drop primary key
SQL Server / Oracle / MS Access使用
alter table [表名] drop constraint [主键名]
删库跑了…