使用INSERT OR REPLACE时MYSQL ON UPDATE CURRENT_TIMESTAMP不更新?

时间:2013-02-07 08:13:19

标签: php mysql sql timestamp

我无法更新last_updated cloumn中的当前时间(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 cloumn value'2013-02-07 07:06:05'即使我在查询中指定了replace with NOW()值到last_updated cloumn。

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

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

2 个答案:

答案 0 :(得分:2)

选项1

您可以在插入/更新时创建触发器,它将使用MySql last_updated函数更新NOW()字段,它将覆盖字段值,但是当您进行批量插入/更新时,它可能会减慢进程的速度

选项2

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

选项3

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

答案 1 :(得分:1)

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