即使密钥存在,Mysql ForeignKey约束也会失败



我在AmazonRDS上的mysql DB版本8.0.20中有两个表,它们之间有一个外键。

当我尝试插入第二个表时,我得到了一个外键错误,但我确保该键存在于第一个表中。

SELECT id_column FROM db.table1 WHERE id_column='123';
+------------+
| id_column  |
+------------+
| 123        |
+------------+
1 row in set (0.00 sec)

然后我运行:

INSERT INTO db.table2 (foreign_id, ...) VALUES ('123', ...);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`db`.`table2`, CONSTRAINT `table2_ibfk_1` FOREIGN KEY (`foreign_id`) REFERENCES `table1` (`id_column`))

那么,如果ID存在于表1中,为什么表2不能在外键列中使用它呢?我错过了什么?

请确保所有这些操作的数据类型匹配:

  • 创建两个表
  • 外键及其索引的创建
  • 在两个表中插入行

最新更新