目录

主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。
每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建。
当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。





注释:其中‘constraint 约束名’可以省略
如下,test2插入成功,test1插入失败



注释:联合主键的值不全部相等就可以插入,且每一列均不能为空



示例


给某个字段添加主键约束之后,该字段不能重复也不能为空,效果和”not null unique”约束相同,但是本质不同。
主键约束除了可以做到”not null unique”之外,还会默认添加”索引——index”






用delete from 删除:


用truncate删除(回到默认值1开始):





12插入失败,34插入成功

可以通过desc查看是否可以为空

唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。
唯一约束不允许出现重复的值,但是可以为多个null。
同一个表可以有多个唯一约束,多个列组合的约束。
在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。
唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。

如图,第二句插入失败
如图,插入成功:在mysql中null和任何值都不等,和自己也不等

删除唯一约束
- create table if not exists e8
- (id int primary key auto_increment,
- name varchar(5),
- tele int unique);
- alter table e8 drop index tele;
- insert into e8 values(NULL,'x1',138);
- insert into e8 values(NULL,'x2',138);
如果没有设置约束名,那么就是默认的表名



