2009-12-13 87 views
1

我想再次有所建树像在MySQL下创建表行动MySQL的默认DATETIME值

date_created datetime NOT NULL DEFAULT CURRENT_DATETIME, 
date_updated datetime NOT NULL ON UPDATE CURRENT_DATETIME, 

,这是一个MySQL创建表的行动,这是两个领域的在我的表。

回答

4

看一看这个

TIMESTAMP Properties

从链接,您可以使用

CREATE TABLE t (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
          ON UPDATE CURRENT_TIMESTAMP); 
CREATE TABLE t (ts TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
          DEFAULT CURRENT_TIMESTAMP); 
+0

是不是有一个日期时间? – jkushner 2009-12-13 19:20:34

+1

还有一个明确记录的限制条件,即您只能在单个列上进行默认和自动更新 - 不会根据请求对两列进行分割。只有一列可以这样处理。似乎是一种奇怪的限制;问题中的情况非常普遍。如果你可以在两列上完成,那么'date_created'列将被赋予一个没有ON UPDATE子句的缺省值,并且更新的日期将包含默认和ON UPDATE子句。 – 2009-12-13 19:24:26

+0

从MySQL 5.6.5开始,此限制[已取消](http://optimize-this.blogspot.com/2012/04/datetime-default-now-finally-available.html)。 – Mei 2012-04-23 17:55:45