从Excel导入数据的错误1064,保留字符
我试图从Excel 2010中导入一个表格到MySQL 5.6通过MySQL的Excel。
它错误地给我一个MySQL Error 1064: You have an error in your SQL syntax...
导致错误的实际字符是正在导入的数据字段内的分号。 当我把所有的“;” 与;#
(但不是 ;
)它工作正常。
如何在不更改数据的情况下导入这些文件?
我还没有find使用MySQL for Excel的解决scheme,但作为替代分号的替代方法,您可以将Excel工作表保存为CSV文件并使用LOAD DATA INFILE
。 以下是可以从具有到数据库服务器的远程连接的Windows计算机使用的语法示例:
LOAD DATA LOCAL INFILE 'c:/path/to/my_excel_data.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
MySQL将在LOAD DATA
语句中正确解释正斜杠的Windowspath。
请注意, LOCAL
关键字为MySQL客户端读取文件信号,因此在本例中,“本地”是指客户端软件,而不是数据库服务器。
如果您的电子表格中的任何单元格中都有“无匹配的"
字符,例如,如果here is " an unmatched double-quote
包含的单元格here is " an unmatched double-quote
,Excel将同时用双引号将双string括起来,保存为CSV时string中不匹配的双引号,所以你得到的是"here is "" an unmatched double-quote"
。 我不确定MySQL在这种情况下会如何反应。