【发布时间】:2012-12-14 07:16:51
【问题描述】:
我在生产服务器上安装了MySQL Server 5.1.62。我每天都在监控 mysql 服务器的错误日志文件,突然我在错误日志文件中发现了以下错误。
InnoDB:无法删除/更新具有超过最大深度 250 的级联外键约束的行
请放弃过多的外来约束,然后重试
我有一个具有 主键 - 外键 关系的数据库结构,具有适当的更新/删除操作,如果父表中的数据被应用程序或手动(后端)删除,我需要删除子表的数据)。
我已经用谷歌搜索过这个问题,但找不到合适的解决方案。我该如何解决这个问题?
【问题讨论】:
-
你能发布你的架构吗?我怀疑你的外键约束中有一个循环。您不必发布整个表格,只需发布外键设置中提到的列即可。
-
我在这里同意@Barmar。您的数据库架构可能有一个循环外键约束,导致删除错误。我们需要看到 table+column 模式才能更有帮助。
-
在您开始看到此错误消息之前发生了什么变化?
-
Deleting multiple rows from tbl_indentmaster 并且由于级联删除所有子表中的数据都被删除了所以我发现了这个错误
-
我的意思不是那种改变。在您开始看到此错误消息之前,db 架构或服务器配置发生了什么变化?
标签: mysql foreign-keys sql-delete cascading-deletes