执行SQL脚本时出错,但单独运行时出错

时间:2015-01-27 18:28:51

标签: mysql sql

我正在使用以下命令运行脚本文件:

mysql -u root -p MyTable < questions.sql

收到以下错误:

ERROR 1366 (HY000) at line 8358: Incorrect string value: '\xD7 4 = ...' for column 'choiceA' at row 1

当我尝试调试时,我发现发生了这个错误,因为我有像乘法和除数学符号这样的特殊字符。在做了一些谷歌搜索后,我发现我的数据库的字符编码应该是UTF-8,我也改变了,但仍然得到相同的错误。

我有点惊讶的是,如果我尝试在SQL提示符中手动执行相同的查询,它工作正常!!这意味着我的数据库编码是正确的。

我无法弄清楚问题出在哪里,并寻求建议。

2 个答案:

答案 0 :(得分:0)

questions.sql文件必须是UTF-8。使用此编码保存文件。

答案 1 :(得分:0)

经过一些调查后,我找到了上述问题的解决方案。

在我的情况下,我是从cvs文件生成sql,不知何故,生成的sql文件中出现了一些特殊字符,并且正在停止mysql将数据加载到显示上述错误的数据库中。

正如我上面所说,SQL工作台能够正确解析sql文件,并能够将数据加载到DB中。所以,我首先将数据加载到数据库中,然后使用Server&gt; Workbench中存在数据导出功能,我将整个数据导出到sql文件中。我能够使用以下命令行成功执行工作台生成的sql文件:

mysql -u root -p MyTable < questions.sql