MYSQL ON UPDATE CURRENT_TIMESTAMP在使用INSERT或REPLACE时未更新



我无法在last_updated cloum中更新当前时间(NOW)。

因为我已经从文本文件中读取了这个查询。

INSERT OR REPLACE INTO table_name (kb_corporate_guid,kb_user_guid,
                                   name,last_updated) 
VALUES ('100','121','FAQ','2013-02-07 07:06:05');

即使我在查询中指定了ignore last_updated cloum值"2013-02-07 07:06:05",我也希望将replace with NOW()值添加到last_updated cloum中。

我试过这个,但对我不起作用。

ALTER TABLE table_name
   CHANGE `last_updated` `last_updated`  timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP;

选项1

您可以在插入/更新时创建触发器,该触发器将使用MySql NOW()函数更新last_updated字段,它将覆盖字段值,但在执行大容量插入/更新操作时可能会减慢进程。

选项2

从文本文件中查找并替换last_updated字段和时间戳值的文本。

选项3

创建具有相同架构的临时表并导入到临时表中,然后使用INSERT INTO main_table SELECT corp_id, user_id, name, NOW() FROM temp_table表插入到主表中。

默认值在查询中未发送时使用,现在在查询中使用,而不是时间戳。。

最新更新