64

我正在使用 MySQL 工作台将 Joomla sample_data.sql 文件导入我的本地数据库。我希望它通过跳过导致错误的行来继续导入,即使发生错误。

有什么我可以在 SQL 前面加上前缀以防止查询因任何错误而停止吗?

4

3 回答 3

96

尝试

mysql --force < sample_data.sql 

Mysql帮助部分说

 -f, --force         Continue even if we get an sql error.
于 2011-03-20T02:52:52.060 回答
43

你也可以使用INSERT IGNORE

INSERT IGNORE INTO mytable
 (primaryKey, field1, field2)
VALUES
 ('1', 1, 2),
 ('1', 3, 4), //will not be inserted
 ('2', 5, 6); //will be inserted
于 2014-04-17T14:46:58.837 回答
42

在 MySQL Workbench 中,我取消了 Query 下的选项以“Stop Script Execution on Errors”:

在此处输入图像描述

看起来津巴宝的答案也行得通。


在较新的版本中使用“切换 SQL 脚本的执行是否应在语句失败后继续”

切换语句失败后是否应继续执行 SQL 脚本

于 2011-03-20T03:20:53.250 回答