![](/img/trans.png)
[英]General error: 1215 Cannot add foreign key constraint, Laravel 5 & MySQL
[英]MySQL Error Code 1215: Cannot add foreign key Constraint on ALTER TABLE : Mysql
我想在現有表(類型InnoDB)上添加外鍵約束,我下面列出了兩個表:
tbl_users : [ user_id(INT,AUTO_INCREMENT), user_name,--- etc]
tbl_users_meta : [ user_meta_id(INT,AUTO_INCREMENT), user_id(INT),--- etc]
我已經在下面列出的“ tbl_users_meta ”上創建了索引“ user_id ”:
這是我的查詢,但是我每次都得到(MySQL Error Code 1215:)。我能得到什么問題?
ALTER TABLE `tbl_users_meta`
ADD CONSTRAINT `fk users user_id`
FOREIGN KEY (`user_id`) REFERENCES
`sanskrut`.`tbl_users`(`user_id`)
ON DELETE NO ACTION ON UPDATE CASCADE;
嘗試使用與您編寫的相同查詢進行的小修改:
ALTER IGNORE TABLE `tbl_users_meta`
ADD CONSTRAINT `fk users user_id`
FOREIGN KEY (`user_id`) REFERENCES
`sanskrut`.`tbl_users`(`user_id`)
ON DELETE NO ACTION ON UPDATE CASCADE;
希望能成功
我看不到您編寫的內容有什么問題,因此必須有一些尚未發布的內容會影響該問題。 例如,在MySQL 5.5.44版上,我可以成功執行以下命令:
CREATE DATABASE sanskrut;
USE sanskrut;
CREATE TABLE tbl_users (user_id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(50));
CREATE TABLE tbl_users_meta (user_meta_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT);
CREATE INDEX user_id ON tbl_users_meta (user_id);
ALTER TABLE `tbl_users_meta`
ADD CONSTRAINT `fk users user_id`
FOREIGN KEY (`user_id`) REFERENCES
`sanskrut`.`tbl_users`(`user_id`)
ON DELETE NO ACTION ON UPDATE CASCADE;
...以您的確切問題陳述結尾,進行復制和粘貼,並且效果很好。
正如我在評論中提到的那樣,我懷疑存在索引丟失或數據類型不匹配的情況。 您可能會發現添加以下內容的輸出會有所幫助:
DESC tbl_users;
DESC tbl_users_meta;
SHOW indexes FROM tbl_users;
SHOW indexes FROM tbl_users_meta;
...對你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.