【发布时间】:2015-04-03 05:30:58
【问题描述】:
我正在使用 MySQL 数据库作为我的应用程序的后端。我在玩数据库,几天前我做错了,现在我无法在我的数据库表上应用外键。 我有 2 张桌子 shoplocation 和 pizaorderdetail。在 Pizzaordrdetail 中,我将来自 shoplocation 的 id 作为外键传递。我收到以下错误。该表中已包含数据。早些时候我在pizzaorderdetail上有外键约束,但不知何故它被删除了。请帮我解决这个错误。
执行:
更改表order.pizzaorderdetail
添加索引FK_idx(LocationIDASC);
更改表order.pizzaorderdetail
添加约束FK
外键 (LocationID)
参考order.location (id)
删除无操作
更新无操作;
操作失败:将 SQL 脚本应用到数据库时出错。
错误 1452:无法添加或更新子行:外键约束失败 (order.#sql-714_31, CONSTRAINT FK 外键 (LocationID) 引用 location (id) ON DELETE NO ACTION ON更新无操作)
SQL 语句:
更改表order.pizzaorderdetail
添加约束FK
外键 (LocationID)
参考order.location (id)
删除无操作
更新无操作
【问题讨论】:
-
我通过禁用外键检查找到了临时解决方案,然后应用约束并再次应用外键检查。这是正确的方法吗?
-
如果表中的数据是正确的,那么就是类型问题。尝试检查两个表中的 id。 (相同的类型,长度,无符号......)。它们应该完全相同
标签: mysql