gpt4 book ai didi

java - 加载数据查询不适用于 INSERT/REPLACE 选项

转载 作者:行者123 更新时间:2023-11-29 07:26:30 25 4
gpt4 key购买 nike

我正在尝试将数据从 CSV 文件上传到 mysql 数据库表中,但在加载数据查询中使用 INSERT/REPLACE 选项时出现错误“java.sql.SQLException:无效的 utf8 字符串:''”。但是相同的查询在没有 INSERT/REPLACE 选项的情况下工作正常。

查询:

Statement  stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);

String query = "LOAD DATA INFILE 'D:\\"+flnm+"' REPLACE INTO TABLE prfl_hntr "
+ "FIELDS TERMINATED by ',' LINES TERMINATED BY '\n' IGNORE 1 LINES"
+ " (candidate, phone, mailid, skill, texp, rexp, pctc,np);";
stmt.executeUpdate(query);

我已经验证了 mysql 文档中的语法- https://dev.mysql.com/doc/refman/8.0/en/load-data.html .

请注意,我需要在查询中使用 REPLACE/IGNORE 选项来消除重复条目。

最佳答案

你是对的,问题不在于语法。问题可能在于 Mysql 表和 CSV 文件之间的字符集不同。我有一个类似的问题,并通过在查询中提及字符集来解决它。尝试下面给出的查询应该有效,并确保您的 CSV 文件包含 Mysql 表支持的数据。

查询:

String  query = "LOAD DATA  INFILE 'D:\\"+flnm+"'  REPLACE INTO TABLE prfl_hntr " 
+"character set latin1 "
+ "FIELDS TERMINATED by ',' LINES TERMINATED BY '\n' IGNORE 1 LINES"
+ " (candidate, phone, mailid, skill, texp, rexp, pctc,np);";
stmt.executeUpdate(query);

此外,您可以按照@RolandoMySQLDBA 对这个问题的回答:Trying to do LOAD DATA INFILE with REPLACE and AUTO_INCREMENT它对我产生了奇迹。

关于java - 加载数据查询不适用于 INSERT/REPLACE 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53410959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com