MySQL如何在执行LOAD DATA INFILE时插入now()日期?

时间:2012-03-06 20:16:12

标签: mysql date

我正在从'infile.txt'文件中导入数据,而我正在使用该表: (ID为auto_incremented)要插入成

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 个答案:

答案 0 :(得分:4)

如果你想忽略文件中的日期,而是使用NOW()代替,那么你可以简单地将文件中的日期加载到用户变量中并忽略它,然后明确地将日期设置为NOW(),就像这样:

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

答案 1 :(得分:3)

DATE字段设置为时间戳:

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

DATE字段将自动包含插入记录的时间,因此您只需忽略加载中的该字段。 DATE也不是字段名称的好选择,因为它是一个应该用反引号括起来的保留字。