我正在尝试使用 Eclipse 中的 java 程序将 .csv 文件的内容插入到数据库表中。但是,我收到以下错误消息。
Exception in thread "main" java.sql.SQLException: Row 1 doesn't contain data for all columns
我确实研究过类似的帖子,但无法找到我的代码的解决方案。知道如何解决这个问题吗?
csv 文件中的示例数据:
tconst_titles,titleType,primaryTitle,originalTitle,isAdult,startYear,endYear,runtimeMinutes
tt1,short,Carmencita,Carmencita,0,1894,0000,1
tt2,short,Le clown et ses chiens,chiens,0,1892,0000,5
tt3,short,Pauvre Pierrot,Pauvre Pierrot,0,1892,0000,4
我的代码:
import java.sql.*;
public class populate {
public static void main(String[] args) throws SQLException {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/IMDB","root","user");
Statement stmt = con.createStatement();
String sql =
"load data local infile 'titles.csv' \n" +
" replace \n" +
" into table Titles \n" +
" columns terminated by '\\t' \n" +
" ignore 1 lines";
stmt.execute(sql);
}
}
最佳答案
问题出在你的java代码中。您用 \t
(制表符)而不是 ,
分隔:
" columns terminated by '\\t' \n" +
这一行应该是:
" columns terminated by ',' \n" +
如果您想通过 \t
分隔列,您可以将 csv 文件数据更改为如下所示:
tt1 short Carmencita Carmencita 0 1894 0000 1
tt3 short Pauvre_Pierrot Pauvre_Pierrot 0 1892 0000 4
tt4 short Pauvre_Pierrot Pauvre_Pierrot 0 1892 0000 4
顺便说一句,csv 表示逗号分隔值。
关于java - 第 1 行不包含所有列的数据 MySQL JDBC Eclipse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49122505/