今天在添加外键时出现报错:“Cannot add foreign key constraint”,折腾一番后找到了原因,特此记录一下。
现有以下两张表:
表名 | 主键 |
---|---|
responsemessage | id |
requestmessage | id |
现需要给responsemessage表添加外键:
alter table `test`.`responsemessage` add constraint `FK_responsemessage` FOREIGN KEY (`userid`) REFERENCES `requestmessage` (`userid`)
结果出现了报错:
Cannot add foreign key constraint
经过一番折腾,找到了原因:
- 两个表的“userid”字段的类型不同;
- 被关联的requestmessage表的“userid”字段不是索引。
我的情况属于第2种,所以我只需给requestmessage表添加userid索引即可。