如何将mysql列的默认值设置为unix_timestamp?

时间:2012-10-29 15:27:53

标签: mysql unix-timestamp

我在考虑这样的事情:

`post_modified` int(11) NOT NULL DEFAULT UNIX_TIMESTAMP (NOW ()) ON UPDATE UNIX_TIMESTAMP (NOW ()),

但是这段代码无效。

2 个答案:

答案 0 :(得分:5)

没有你在展示时不能使用它。

来自MySql上的数据类型文档:

“默认值必须是常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为函数的值,例如NOW()或CURRENT_DATE。例外情况是您可以将CURRENT_TIMESTAMP指定为TIMESTAMP列的默认值。“

请看下面的解决方法:

Is it possible to create a column with a UNIX_TIMESTAMP default in MySQL?

希望这会有所帮助!

答案 1 :(得分:4)

  

注意:我不知道 MYSQL TRIGGER的表现

     

请浏览这些链接

     
      
  1. Identify some of the drawback of implementing sql server triggers

  2.   
  3. Using Triggers

  4.   

您可以为此创建触发器。

  

用于插入

CREATE TRIGGER {trigger_name} BEFORE INSERT ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());

  

更新

CREATE TRIGGER {trigger_name} BEFORE UPDATE ON {table_name} FOR EACH ROW SET new.{field_name} = UNIX_TIMESTAMP(NOW());