当列上有fk时,如何使列自动递增?

yebdmbv4  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(253)

我有一张table叫 products 其中有一列名为 id . 该列是主列,但不是自动递增的。当我想使它自动递增时,它会抛出以下错误消息:

1833-无法更改列“id”:用于表“mydb.unique\u products”的外键约束“unique\u products\u ibfk\u 1”

如何强制将其转换为自动增量?注意到日期进入 unique_products 这张table配得上我,我不能把它们搬走。

p8h8hvxi

p8h8hvxi1#

不能将fk设置为自动增量。产品中的图像id将自动递增到id 100,但它链接到的foreing表没有id 100。它将导致冲突,并且数据不会被插入。
如果您想让id自动递增,就必须删除fk。

qco9c6ql

qco9c6ql2#

无法在版本5.5.52上复制此内容。
看看mysql bug tracker,它说这会影响5.6.24和5.6.27版本(https://bugs.mysql.com/bug.php?id=77591)
我想你是在其中一个版本上。解决方法可能是禁用fk,执行alter表,然后重新启用fk约束。

相关问题