问题发生场景
我们有一个数据库,数据库中有30+张表,里面所有的主键都还未设置自增长类型。当我们一次性给所有表中的主键设置自增长类型时,VS2012报“MySQL多列identity约束 错误。
分析问题
- 初始,我们以为是其中有个表里有多个列设置了identity。但并没有。
- 后来,我们又以为是当一个表中有外键的时候,系统会默认与外键联系的表为同一个表。所以会报多列identity错误。但删除其中一个表的identity后仍报错。(代表我们的想法错误)
解决方法
将VS2012里的数据库配置文件重新打开。为每一个表加identity约束,每加一个,就保存一次。最后所有表都成功加了自增约束
结论
其实还是不知道为什么不能一次性添加主键约束,只能归咎于VS2012不够智能~不过问题解决了就好。如果有人知道为什么,欢迎留言~~