2012-03-06 54 views
0

我從一個文件 'infile.txt' 導入數據和我使用的表:人民(ID是auto_incremented)以將其插入MySQL如何在執行LOAD DATA INFILE時插入now()日期?

ID DATE NAME 

infile.txt

Ben 
Jim 
Jack 

我用這個方法

LOAD DATA INFILE '~/infile.txt'  
INTO TABLE People 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(DATE, NAME); 

所需的輸出

ID DATE     NAME 
    1 2012-03-06 15:13:40 Ben 
    2 2012-03-06 15:13:41 Jim 
    3 2012-03-06 15:13:42 Jack 
+2

您可以使用'current_timestamp'默認值創建'timestamp'字段 – zerkms 2012-03-06 20:18:37

+0

您有一個通用示例? – stackoverflow 2012-03-06 20:19:24

+0

爲什麼?建議很清楚 – zerkms 2012-03-06 20:24:23

回答

3

要設置DATE字段作爲時間戳:

ALTER TABLE `People` CHANGE COLUMN `DATE` TIMESTAMP DEFAULT CURRENT_TIMESTAMP; 

DATE字段將自動包含記錄插入的時間,因此您只需忽略加載中的該字段。 DATE對於字段名稱也不是一個好的選擇,因爲它是一個應該反引號括起來的保留字。

3

如果你想忽略文件中的日期,現在使用()代替,那麼你可以簡單地從該文件中的日期加載到用戶變量,忽略它,則明確設定日期NOW(),像這樣:

LOAD DATA INFILE '~/infile.txt'  
INTO TABLE People 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(@DATE, NAME) 
SET DATE = NOW();