[英]Can't add AUTO_INCREMENT on existing column because of foreign key
我有主鍵列,其中有一些外部外鍵引用。 很平常 我忘了為此添加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煩惱。
FK困擾您的更改的原因是因為您試圖更改它並在約束中使用它,請記住您能夠更改數據類型。
因此,如果要對FK進行更改,請檢查此答案(如果要在生產環境中進行更改,請記住先鎖定表)。
(PRIMARY KEY是單獨定義的)
如果您在列上定義了主鍵,那么我認為不需要修改列並向其添加auto_increment。 默認情況下,主鍵自動遞增。
但是,如果要在其上設置auto_increment功能,請嘗試如下操作:
--Drop foreign key
ALTER TABLE chat.users DROP FOREIGN KEY fk_chats_users;
--Alter your primary key
ALTER TABLE person modify user_id INT(11) not null auto_increment;
--Recreate foreign key
ALTER TABLE chat.users ADD CONSTRAINT fk_chats_users FOREIGN KEY (user_id) REFERENCES chat.users(user_id) ON DELETE CASCADE;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.