为了账号安全,请及时绑定邮箱和手机立即绑定

为什么删除了主键primary之后唯一约束会变成主键约束?

为什么删除了主键primary之后唯一约束会变成主键约束?
还有为什么删除不了?必须要有约束们

正在回答

2 回答

主键约束和唯一约束都具有唯一标识数据表记录的作用,数据表记录千千万万,必然存在标志唯一性的字段,主键约束存在时,主键起标识唯一性作用,主键删除后,从一个或多个唯一约束中顺序选择其中一个作为唯一标识,

0 回复 有任何疑惑可以回复我~
#1

qq_微笑王子_0 提问者

但是我新建一张表带有两个唯一主键和一个主键约束,删除了主键之后只剩下两个唯一主键
2016-12-20 回复 有任何疑惑可以回复我~
#2

qq_微笑王子_0 提问者

非常感谢!
2016-12-20 回复 有任何疑惑可以回复我~

删除主键约束后,你没有主键约束,但是有唯一约束,数据库自动把唯一改成主键约束,因为主键是不能没有的,

把唯一约束的那列中的数据,加一个null,然后在把主键删掉,看看这时唯一性约束还能变成主键约束吗?估计不能删除主键了,

所以说主键约束和唯一约束的区别都是数据唯一性和完整性,但是主键约束不允许为空,而唯一约束允许为空,在唯一约束允许为NULL的情况下,就不能转换为主键了


3 回复 有任何疑惑可以回复我~
#1

qq_微笑王子_0 提问者

万分感谢
2017-01-01 回复 有任何疑惑可以回复我~
#2

无敌小哥儿

"因为主键是不能没有的"??你的意思时每张表必须有主键??可是前边视频讲的不是需要auto_increment或者要引索时可以添加一个主键。没有主键的表也可以正确创建啊,我觉得这里应该是跟引索有关吧,但具体的也不是特别清楚。。
2017-01-26 回复 有任何疑惑可以回复我~
#3

慕粉2137351520 回复 无敌小哥儿

你要明白索引是用来提高查找效率的,代价是降低插入效率。 所以如果有一张表,数据量很大,而且有频繁的插入操作,但查找操作较少,这种表你就可以考虑不添加索引,这样可以保证插入的效率,但代价是查找操作可能会变得非常慢。 主键除了具有索引的功能之外还具有保证唯一性的功能,你不能在一张表里添加有重复主键的多条记录,这是对数据完整性/一致性的一种保证,如果你需要这个功能,那么就需要主键,否则可以考虑不要。
2017-05-09 回复 有任何疑惑可以回复我~
#4

慕盖茨9974910 回复 无敌小哥儿

同样的疑问,我建立的一个表有主键约束和唯一约束,我删除主键约束后,唯一约束自动变为主键约束,但这种情况下,我再想删除主键约束就删除不了,提示Can't DROP 'PRIMARY'; check that column/key exists
2017-12-26 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

为什么删除了主键primary之后唯一约束会变成主键约束?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信