LOAD DATA LOCAL INFILE读取问题

时间:2011-01-13 15:35:47

标签: sql mysql load-data-infile

使用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

然而,它无法读取第一个字段并跳到第二个字段。所以, 第二个字段将替换为第一个字段。

你能帮助把第一批田地带到正确的地方吗?

感谢

2 个答案:

答案 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}")