由于外键,无法在现有列上添加AUTO_INCREMENT

use*_*411 15 mysql sql database foreign-keys foreign-key-relationship

我有主键列,它有一些外部外键引用.很平常.我忘了为它添加AUTO_INCREMENT.现在我执行

ALTER TABLE chat.users CHANGE COLUMN user_id user_id INT(11) NOT NULL AUTO_INCREMENT ;

(PRIMARY KEY单独定义)

它讲述了一些关于fk的事情 ERROR 1833: Cannot change column 'user_id': used in a foreign key constraint 'fk_chats_users' of table 'chat.chats'

我无法弄清楚为什么fk会打扰它的引用AUTO_INCREMENT.

Lea*_*edo 5

FK担心更改的原因是因为您试图更改它并在约束中使用它,请记住您能够更改数据类型。

因此,如果要对FK进行更改,请检查答案(如果要在生产环境中进行更改,请记住先锁定表)。

  • 因此,即使FK保留数据类型并且所有数据都相同,它也只是阻止任何更改?我不认为这很粗鲁。使用“ SET FOREIGN_KEY_CHECKS = 0;”。对我来说非常有帮助。谢谢! (8认同)