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:是的,我_思考_我正在從正確的地方閱讀,並有正確的版本。我認爲我錯過了一些細微差別(或者明顯的我不夠聰明),但我還沒有找到它。 –