情况分类:
(1)两字段类型不一致。
添加外键时要保证类型完全一样,不能一个是int,另一个是bigint。也不能一个是有符号的int,另一个是无符号的int。也不能一样长度为1, 另一个长度为2。在实际的使用中,这种情况会出现在类型与有无符号上。解决的方法也简单:将两个字段的类型、长度、有无符号设置一致。
(2)设置外键时“删除时”设置为“SET NULL”。
设计数据库时,将数据表中的某个字段设置为了主键,那么此主键是必然不能为null。此时,我们又设置其为外键。但在设置删除策略时,却不小把它设置为:删除时设置为null。解决策略:设置为No Action或Restrict,这两个值的意思一样,同为:在删除时检查约束,如果存在外键,则报约束性异常。
(3)两张表的存储引擎不一致
查询表的引擎:
a、show table status from db_name where name=‘table_name’;
解决策略:修改为相同引擎:alter table table_name engine=innodb;
(MySQL)记录1215 - Cannot add foreign key constraint
最新推荐文章于 2023-08-17 10:49:31 发布