这里只能有一个TIMESTAMP列,DEFAULT中有CURRENT_TIMESTAMP

时间:2013-12-15 19:43:46

标签: mysql

我希望mofidy TIMESTAMP列将CURRENT_TIMESTAMP作为默认值,并在修改它时使用CURRENT_TIMESTAMP。

这是我试过的脚本:

ALTER TABLE annonce MODIFY COLUMN date_modif TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

但我收到此错误消息:

  

1293 - 表定义不正确;只有一个TIMESTAMP   DEFAULT或ON UPDATE子句中带有CURRENT_TIMESTAMP的列

我还有另一列(date_crea),其CURRENT_TIMESTAMP为默认值。

这是否意味着我只能在一列中使用值CURRENT_TIMESTAMP?

如果我能解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

这是否意味着我只能在一个中使用值CURRENT_TIMESTAMP   专栏??

是的,这就是事实。没有办法解决这个问题。 但您可能希望使用插入后触发器和更新后触发器来自行设置时间。

阅读http://dev.mysql.com/doc/refman/5.7/en/create-trigger.html

CREATE TRIGGER trigger_name AFTER INSERT ON tbl_name FOR EACH ROW set my_second_currenttime = now();
CREATE TRIGGER trigger_name AFTER UPDATE ON tbl_name FOR EACH ROW set my_second_currenttime = now();

在现实世界中未经测试 - 只是一个代码示例