一.先设主键自增再设外键
今天修改数据库表(运用sqlyog),发现主键没有自增,想要添加自增,报错,查看很多博客,尝试后得出结论:Mysql只能先设置主键自增再设置外键,否则报错。原因是此主键是另一个表的外键,而外键是不可以设置自增的,所以想要设置自增,必须先将外键删除。
参考博客:https://blog.csdn.net/qq_39688282/article/details/100900963
二.Can’t write; duplicate key in table总结
经过上述操作,有些表已经修改成功,直到遇到下面这张表:
设置外键后,发现报错,如下图:
错误信息说道表中键重复,又查询大量博客,基本上说的都是外键名重复,经过实验发现不对,如下图:
两表中外键正确,名称却是相同的。
这问题卡了很久,最后发现是约束名的问题,如下图:
从图中可以看出,两个外键的约束名相同了,经过修改,成功,如下图:
接着运用此方法设置外键,发现如下错误:
观察上一张成功的表发现约束名重名了,如下图:
修改之后,成功,如下图:
经过修改,如下两张图:
发现不同的外键,约束名也不能相同。