我尝试添加与birth_country_id
表格相关的两列home_country_id
和countries
的引用。
当我执行以下查询时,它会给出错误#1215 - Cannot add foreign key constraint
ALTER TABLE `users`
ADD CONSTRAINT `users_country_ids_foreign`
FOREIGN KEY
(`home_country_id`, `birth_country_id`)
REFERENCES `countries`(`id`, `id`)
ON DELETE SET NULL ON UPDATE NO ACTION;
PS:此查询由PhpMyAdmin自动生成。
我做错了什么?
答案 0 :(得分:1)
您需要生成两个单独的外键。您想要单独检查您在home_country_id
中指定的国家/地区是否存在,以及您在birth_country_id
中指定的国家/地区是否存在。
MySQL不支持在索引中多次使用同一列(这是您的语句失败的技术原因),但如果将允许,则您的外键将验证{ {1}}和home_country_id
相等,这可能不是您想要表达的内容。
答案 1 :(得分:-1)
在这种情况下,您可以尝试为每列添加2个单独的约束。