2012-10-29 103 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?

希望這將幫助!

相關問題