如果有一个FK,我如何制作一个auto_increment列?

时间:2018-05-06 06:56:30

标签: mysql sql

我有一个名为products的表,其中有一个名为id的列。该列是主要的,但不是auto_increment。当我想使它成为auto_increment时,它会抛出此错误消息:

  

#1833 - 无法更改列'id':在表'mydb.unique_products'的外键约束'unique_products_ibfk_1'中使用

如何强制将其转换为auto_increment?注意到unique_products表中的日期对我来说是值得的,我不能删除它们。

2 个答案:

答案 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约束。