2011-01-13 72 views
0

我在使用LOAD DATA INFILE commond時遇到問題。LOAD DATA LOCAL INFILE讀取問題

我使用下面的命令創建了一個表;

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 

但是它無法讀取所述第一字段和跳到第二ones.So, 第二場被替換到第一字段。

你能幫助將第一個字段放到正確的位置嗎?

感謝

回答

2

之前「奧馬爾」和「阿里」(在每個行的開始處),用於在自動增量列前添加「\ N」。我也附上引用日期

1

我剛剛發現問題是加載數據文件行的序列。正確的序列是

temp.executeUpdate("LOAD DATA LOCAL INFILE 'patient.txt' INTO TABLE Patient FIELDS ENCLOSED BY '\"' {name,address,phone,birthdate}")