使用LOAD DATA INFILE commond时遇到问题。
我使用以下命令创建了一个表;
temp.executeUpdate("CREATE TABLE Patient (patientID INT AUTO_INCREMENT, name VARCHAR(100),address VARCHAR(150), phone VARCHAR(15), birthdate DATE, PRIMARY KEY (patientID))");
并尝试使用此命令从文件中读取;
temp = connect.createStatement();
temp.executeUpdate("LOAD DATA LOCAL INFILE 'patient.txt' INTO TABLE Patient {name,address,phone,birthdate} FIELDS ENCLOSED BY '\"' ");
temp.executeUpdate(" UPDATE Patient SET name=NULL WHERE name= '-' ");
temp.executeUpdate( " UPDATE Patient SET address = NULL WHERE address = '-' ");
temp.executeUpdate(" UPDATE Patient SET phone = NULL WHERE phone = '-' ");
temp.executeUpdate(" UPDATE Patient SET birthdate = NULL WHERE birthdate = '-'");
我的示例文本文件就是这个;
"omer" "trabzon" "3253008" 1990-06-10
"ali" "ankara" "2234887" 1999-11-12
然而,它无法读取第一个字段并跳到第二个字段。所以, 第二个字段将替换为第一个字段。
你能帮助把第一批田地带到正确的地方吗?感谢
答案 0 :(得分:2)
在“omer”之前和“ali”之前(在每行的开头)为自动增量列添加“\ N”。我还要附上带引号的日期
答案 1 :(得分:1)
我刚刚发现问题是加载数据文件行的顺序。正确的顺序是
temp.executeUpdate("LOAD DATA LOCAL INFILE 'patient.txt' INTO TABLE Patient FIELDS ENCLOSED BY '\"' {name,address,phone,birthdate}")