Я пытаюсь вставить содержимое файла.csv в таблицу базы данных, используя java-программу в eclipse. Однако я получаю следующее сообщение об ошибке.
Exception in thread "main" java.sql.SQLException: Row 1 doesn't contain data for all columns
Я просмотрел похожие сообщения, но не смог найти решение для моего кода. Любая идея, как я могу решить проблему?
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 означает Comma Separated Values.
1894-1-1