【发布时间】:2020-01-28 00:38:36
【问题描述】:
这是一个在 mysql 命令行中完美运行的代码,但是当我尝试在 java 中执行查询时,它给出了一个语法错误,不确定是什么问题。
我已经加了空格,修改了代码,还是没找到解决办法。
String path = selectedfile.getAbsolutePath();
String sql = "LOAD DATA LOCAL INFILE '" + path + "' REPLACE INTO TABLE
temp FIELDS TERMINATED BY ',' ENCLOSED BY '" + '"' + " LINES TERMINATED BY
'\r\n' IGNORE 1 LINES \n" + "
(fname,lname,email,idemployee,statu,@hiredate,idsupervisor,
jobtitle,description,country,site,clockid) "+
"SET hiredate = STR_TO_DATE(@hiredate, '%m/%d/%Y');";
这是java中的输出
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '' IGNORE 1 LINES 附近使用的正确语法 (fname,lname,email,idemployee,statu,@hiredate,idsupervisor,job' 在第 2 行
【问题讨论】:
-
字段名列名是否正确 - 状态 - @hiredate
-
@zod 错误的列名不会导致语法错误。
-
@zod 是的,它们是正确的,因为 status 是一个保留字,它替换了 statu 的列并聘请了它,因为我在从 csv 导入时操作字符串到日期