Mysql-------错误总结:Can't write; duplicate key in table

一.先设主键自增再设外键

今天修改数据库表(运用sqlyog),发现主键没有自增,想要添加自增,报错,查看很多博客,尝试后得出结论:Mysql只能先设置主键自增再设置外键,否则报错。原因是此主键是另一个表的外键,而外键是不可以设置自增的,所以想要设置自增,必须先将外键删除。
参考博客:https://blog.csdn.net/qq_39688282/article/details/100900963

二.Can’t write; duplicate key in table总结

经过上述操作,有些表已经修改成功,直到遇到下面这张表:
在这里插入图片描述
设置外键后,发现报错,如下图:
在这里插入图片描述
错误信息说道表中键重复,又查询大量博客,基本上说的都是外键名重复,经过实验发现不对,如下图:
在这里插入图片描述
在这里插入图片描述
两表中外键正确,名称却是相同的。

这问题卡了很久,最后发现是约束名的问题,如下图:在这里插入图片描述
从图中可以看出,两个外键的约束名相同了,经过修改,成功,如下图:
在这里插入图片描述
接着运用此方法设置外键,发现如下错误:
在这里插入图片描述
观察上一张成功的表发现约束名重名了,如下图:
在这里插入图片描述
修改之后,成功,如下图:
在这里插入图片描述
经过修改,如下两张图:
在这里插入图片描述
在这里插入图片描述
发现不同的外键,约束名也不能相同。

结论:

(1)同一个表中,约束名不能相同。

(2)不同的表中约束名也不能相同(不管外键名相不相同)。

原创文章 42 获赞 32 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39671159/article/details/104733861
今日推荐