【发布时间】:2019-09-05 21:44:58
【问题描述】:
我正在尝试将 .csv 文件上传到 mysql 表中,但目前它只会在电影表中上传 1001 行电影,因为它会遗漏几千行
我尝试将 int 更改为 Bigint 以给它更多空间,因为 int 最多只能提供 4 个字符,最大的是 7220,当它在 csv 文件中达到 6 或 7 个字符时 例如:
Lines included =
6116,Spice World,4.7,123
5902,A Bridge Too Far,6.9,207
Lines not included:
190955,Blood Ties,6,171
206647,Spectre,6.3,4466
13056,Punisher: War Zone,5.6,294
LAST line loaded:
7220,The Punisher,6.1,766 (LINE 1488)
last line not loaded:
7278,Meet the Spartans,3.7,359 (LINE 1608)
我注意到它达到了一个点 (7220),它没有带来任何更高的东西,但包括 7220 及以下的所有东西。
statement.executeUpdate("CREATE TABLE Movies("
+ "id BIGINT, "
+ "title VARCHAR(100), "
+ "vote_average VARCHAR(100), "
+ "vote_count VARCHAR(100), "
+ "PRIMARY KEY(id))" );
String loadQuery = "LOAD DATA LOCAL INFILE '" + "movies.csv"
+ "' INTO TABLE Movies FIELDS TERMINATED BY ',' ENCLOSED BY '\"'\n" +
"LINES TERMINATED BY '\\r\\n'\n" +
"IGNORE 1 LINES";
stmt.execute(loadQuery);//executing the query
更新:记得在 MYSQL 中选择“无限制”,这就解释了为什么 select 只返回 1000 行。
【问题讨论】:
-
什么是最后一行加载,第一行没有加载?我怀疑一些格式/解析问题
-
分隔符一定有错别字,或者第7220行的换行符,能否请你把那部分的csv贴出来?
-
您愿意使用任何基于 gui 的工具进行导入吗?
-
@arcy 最后和第一个添加
-
此内容完全不按顺序排列 id 7220 不是第 7220 行 @Chistos K。
标签: java mysql load-data-infile