2012-10-29 64 views
4

我在想的东西是这样的:如何将mysql列的默认值设置为unix_timestamp?

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

但是这个代码就无法正常工作。

+0

不可能。缺省值不能是动态的,除了'timestamp'字段的情况。您必须使用触发器来设置unix时间戳。 –

+2

http://stackoverflow.com/questions/5331026/is-it-possible-to-create-a-column-with-a-unix-timestamp-default-in-mysql - 检查此 –

回答

3

注:我不知道MYSQL TRIGGER

请到通过这些链接

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

  2. Using Triggers

性能想法

您可以为此创建触发器。

用于插入

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

4

不,你不能使用它,因为你显示。

从数据类型的文档上MySql

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

看看下面的答案解决方法:

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

希望这将帮助!

相关问题