8

我在想这样的事情:

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

但是这段代码不起作用。

4

2 回答 2

6

不,你不能像你展示的那样使用它。

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

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

查看以下解决方法的答案:

是否可以在 MySQL 中创建具有 UNIX_TIMESTAMP 默认值的列?

希望这会有所帮助!

于 2012-10-29T15:49:38.073 回答
6

注意:我不知道MYSQL TRIGGER的性能

请通过这些链接

  1. 确定实现 sql server 触发器的一些缺点

  2. 使用触发器

您可以为此创建触发器。

用于插入

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());

于 2014-01-12T12:45:04.780 回答