我有一个名为products
的表,其中有一个名为id
的列。该列是主要的,但不是auto_increment。当我想使它成为auto_increment时,它会抛出此错误消息:
#1833 - 无法更改列'id':在表'mydb.unique_products'的外键约束'unique_products_ibfk_1'中使用
如何强制将其转换为auto_increment?注意到unique_products
表中的日期对我来说是值得的,我不能删除它们。
答案 0 :(得分:0)
你不能将FK作为auto_increment。图片中您在产品中的ID将自动增加到ID 100,但链接到的外观表没有ID 100.这将导致冲突并且数据不会被插入。
如果您希望id为auto_increment,则必须删除FK。
答案 1 :(得分:0)
无法在5.5.52版本上重现此问题。
看一下MySQL Bug Tracker,它说这会影响版本5.6.24和5.6.27(https://bugs.mysql.com/bug.php?id=77591)
我假设您使用的是其中一个版本。解决方法可能是禁用FK,执行ALTER TABLE,并重新启用FK约束。