MySQL:错误 1217 (23000):无法删除或更新父行:外键约束失败 - 但仅适用于 1 个 sql 文件

Posted

技术标签:

【中文标题】MySQL:错误 1217 (23000):无法删除或更新父行:外键约束失败 - 但仅适用于 1 个 sql 文件【英文标题】:MySQL: ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails - but only for 1 sql file 【发布时间】:2020-06-30 19:59:15 【问题描述】:

我正在尝试将数据从 sql 文件导入本地 mysql 数据库。我正在使用 WampServer2.5、MySQL 5.6.17。我正在使用 MySQL 控制台导入它们,因为 phpMyAdmin 界面导致了一些问题。

前两个文件似乎已正确上传。但是,它们比第三个要小得多。步骤始终相同:

1. create database xyz;
2. use database xyz;
3. SET FOREIGN_KEY_CHECKS = 0;
4. source path/to/the/xyz.sql

在某些时候上传第三个文件时出现此错误(连续几个,然后继续上传):

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:  [some number]
Current database: xyz

然后获取其中的一些,这很奇怪,因为我一开始就设置了(也许在连接丢失时会重置此设置?):

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

结果是我上传了所有表,但其中一些没有数据 - 主要是因为它们引用了第三个数据库中的用户表,该数据库没有记录。

想法/问题:

    我尝试编辑 php.ini 文件以增加内存限制、最大文件上传大小但对 PHPMyAdmin 界面没有影响 我可以在sql文件中只找到一张表,然后将记录上传到我的MYSQL数据库中的表中吗?

【问题讨论】:

【参考方案1】:

在我在 Notepad++ 中打开完整的 sql 文件后更新了表,发现只有在该特定表中插入了值的行,将其保存为新的 sql 文件,然后使用“source”命令。

【讨论】:

以上是关于MySQL:错误 1217 (23000):无法删除或更新父行:外键约束失败 - 但仅适用于 1 个 sql 文件的主要内容,如果未能解决你的问题,请参考以下文章

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

SQLSTATE [23000]:违反完整性约束:1217

mysql 错误代码1217 MYSQL外键约束检查失败,删除或修改主表记录失败 怎么解决啊

MySQL - ERROR 1062 (23000)

SQL 错误:SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败

SQLSTATE[23000]:无法在对象中插入重复的键行