0

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

但是它无法读取第一个字段并跳到第二个字段。因此,第二个字段被替换为第一个字段。

你能帮忙把第一个字段放到正确的地方吗?

谢谢

4

2 回答 2

2

在“omer”之前和“ali”之前(在每行的开头)为自动增量列添加一个“\N”。我还会用引号括起来日期

于 2011-01-13T15:40:39.437 回答
1

我刚刚发现问题是加载数据文件行的顺序。正确的顺序是

temp.executeUpdate("LOAD DATA LOCAL INFILE 'patient.txt' INTO TABLE Patient FIELDS ENCLOSED BY '\"' {name,address,phone,birthdate}")
于 2011-01-15T09:45:30.997 回答