如何让 mysqldump/mysql 导入数据时忽略错误继续执行

有趣的是,开发者本人。
许多人第一次这样做时都会感到不舒服。
我之前也遇到过类似的情况,当时收到建议的时候速度也很快。

由Editplus转换的有趣的SQL语句应该给出以下形式。
我有一个朋友因为逗号后面有一个多余的空格而导致 MySQL 崩溃。
你的正则表达式可能无法完全匹配所有情况,例如,某些特殊字符可能处理得不够严格。

关于ERROR1 06 2 ,这确实是一条严格的MySQL规则。
但重点是批量导入默认停止。
之前我用Navicat导入数据的时候,一张表里有几百个重复的键,卡住了。
后来查了手册,才知道如何添加-f-模块。
我转念一想,我要这样的“强制处决”吗?
不过话虽如此,使用模块化-f 时必须小心。
上次我有一个具有非常复杂的表结构的客户数据库。
通过添加 -f 模块,我本来只是想忽略重复的键,但是整个表都搞乱了。
所以现在我在使用前做了备份。

在你的场景中,如果数据量不大,只需添加 -f 模块即可尝试。
如果表中其他依赖关系未正确处理,则应单独检查它们。
例如,我有一个表依赖于另一个表的 ID。
这就是为什么我导入主表而不导入从属表,这会导致混乱。

关于移民,我们确实需要分阶段采取行动。
这次你找到了解决办法。
下次遇到更复杂的问题(例如数据类型不匹配)时,您可以打开一个新主题。

MySQL怎样跳过错误继续执行 事务错误处理与跳过技巧

曾经,我负责处理一个项目中的大量用户数据更新,其中涉及数千条记录。
那天,我坐在电脑前,面对着密密麻麻的 SQL 语句。
突然出现一条错误消息,说特定ID的数据格式不正确。
我叹了口气,知道如果每次都要停下来修改的话,要花多少时间。
所以我决定尝试使用存储过程来解决这个问题。
我编写了一个存储过程,它使用 DECLARE CONTINUE HANDLER 来捕获该错误,然后在不停止整个更新过程的情况下记录它。
我看着代码,心想:就像在高速公路上,有些车有问题,但其他车可以继续行驶。
我运行存储过程并观察数据一点点更新。
我暗自庆幸有这个方法。

该项目随后上线,数据更新成功完成,没有出现个别错误扰乱整个过程。
然而我们知道,这种方式虽然方便,但也带来了数据不一致的风险。
必须格外小心,以避免这种在重要任务中跳过错误的方法出现问题。

等一下,还有一件事。
我想到如果以后出现类似的情况,可以结合数据字典清理来减少错误的发生。
毕竟,预防总是比治疗更有效。

如何让 mysqldump/mysql 导入数据时忽略错误继续执行

嗯...这是...在 2 02 2 年...我在一台 Windows 计算机上...连接到数据库...这就是它的工作原理。

首先...开始菜单...查找运行...cmd...按Enter键。

然后...输入 mysql -u root -p... 并按 Enter。

请稍候...系统将提示您输入密码...输入您的密码...按 Enter。

输入后...检查名为 testdb 的数据库是否存在...
如果存在...键入 use testdb... 并按 Enter。

如果没有...键入 create database testdb... 并按 Enter...,然后使用 testdb... 并按 Enter。

下一步...将要导入的数据库文件...将.sql文件...放在D盘...或者...方便的地方...
我...将其放在D盘的根目录中。

然后...在cmd中...输入mysqldump -u root -p testdb > d:\testdb.sql...并按Enter键。

请稍候...系统将提示您再次输入密码...输入您的密码...然后按 Enter。

做吧。