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总结

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

这问题卡了很久,最后发现是约束名的问题,如下图:Mysql-------错误总结:Can't write; duplicate key in table_第4张图片
从图中可以看出,两个外键的约束名相同了,经过修改,成功,如下图:
Mysql-------错误总结:Can't write; duplicate key in table_第5张图片
接着运用此方法设置外键,发现如下错误:
Mysql-------错误总结:Can't write; duplicate key in table_第6张图片
观察上一张成功的表发现约束名重名了,如下图:
Mysql-------错误总结:Can't write; duplicate key in table_第7张图片
修改之后,成功,如下图:
Mysql-------错误总结:Can't write; duplicate key in table_第8张图片
经过修改,如下两张图:
Mysql-------错误总结:Can't write; duplicate key in table_第9张图片
Mysql-------错误总结:Can't write; duplicate key in table_第10张图片
发现不同的外键,约束名也不能相同。

结论:

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

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

你可能感兴趣的:(mysql)