0
我有一张表,我打算从CSV文件填充。该文件包含22列,表中包含24个。差异是列列表末尾的created_at
和updated_at
字段。将created_at和updated_at添加到LOAD DATA INFILE数据
我真正想要发生的是创建每个记录并为最后2列进行默认设置。
我说,像这样的列:
ALTER TABLE mytable
ADD created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
ADD updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
;
我的装载机脚本是这样的:
LOAD DATA LOCAL INFILE '/tmp/my.csv'
REPLACE INTO TABLE mytable
CHARACTER SET utf8
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES
;
我想,当然,对于created_at
和updated_at
价值得到在插入新记录时设置。如果记录被替换,updated_at
值应该被替换?
可能吗?我使用的是MariaDB 10.0.26,并且两个日期总是使用值0000-00-00 00:00:00
创建。
检查'TIMESTAMP'上'DEFAULT'的确切规则;他们已经改变了版本。 –
'ENGINE = InnoDB'? –
@RickJames:是的,我_思考_我正在从正确的地方阅读,并有正确的版本。我认为我错过了一些细微差别(或者明显的我不够聪明),但我还没有找到它。 –