MySQL 数据库。无法添加外键[重复]
Posted
技术标签:
【中文标题】MySQL 数据库。无法添加外键[重复]【英文标题】:MySQL database. can't add foreign key [duplicate] 【发布时间】:2014-04-02 15:41:24 【问题描述】:我有两张桌子电影和电影院。在cinema 表中,有一个名为cinema_id 的主键。我正在尝试使电影表中的这个主键成为电影表中的外键。 所以我用了
alter table movies
add foreign key(cinema_id)
references cinema(cinema_id)
但我收到一条错误消息:
#1072 - 表中不存在键列“cinema_id”
所以我添加了一列,然后尝试再次创建外键,但出现错误消息:
#1452 - 无法添加或更新子行:外键约束失败
我已经检查了列类型,并且是相同的。有人可以帮我吗?我不知道该怎么办。
【问题讨论】:
在添加 FK 时,您必须检查所有数据是否通过其约束。在查询前使用SET foreign_key_checks = 0;
,如果要强制,请在其后设置为 1。
@TomaszKowalczyk 我不明白什么 SET foreign_key_checks = 0;会做吗?
我不想失礼,但谷歌已经停止工作了吗?
【参考方案1】:
您使用了错误的语法。您必须创建一个约束,而不是简单地添加一个外键.. 试试这个:
ALTER TABLE MOVIES ADD CONSTRAINT MOVIES_CINEMA_FK
FOREIGN KEY (CINEMA_ID)
REFERENCES CINEMA(CINEMA_ID);
mysql Documentation
【讨论】:
嗨,我试过了,但它仍然给了我同样的错误movies
表中有记录吗?如果是,您必须确保这些值也在表中cinema
我在电影表和电影表中都有虚拟数据。所以电影表中的列也必须在电影表中?
是的.. movies.cinema_id
的每个值都必须在 cinema.cinema_id
中,否则您将违反约束。
好的,你是说电影表中的所有列也必须在电影院表中?以上是关于MySQL 数据库。无法添加外键[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 错误 [1215] [HY000] - 无法添加外键 [重复]
创建外键时出错:MySQL 错误 1215:无法添加外键约束 [重复]