再论MySQL TIMESTAMP属性

2013-05-22_090543

 

这是MySQL 5实力养成暨评量里的4-49.‘MySQL中,栏位为TIMESTAMP时,设定DEFAULT为CURRENT_STAMP的栏位可以有几个?’

答案:(D) 1

[adsense][/adsense]

这题跟MySQL TIMESTAMP属性是姊妹题,之前ㄚ琪可能不太了解中文译出来的结果,所以这题又遭到滑铁卢,然后再一次测试,发现了设定DEFAULT为CURRENT_STAMP的栏位只能有一个,因为会跟ON UPDATE这个触发程序有关,而触发程序又只能有一个事件而已,所以表格中就只能有一个栏位可以设为CURRENT_STAMP。

我们以下面这个为例:

CREATE TABLE t
(
  ts1 TIMESTAMP NULL DEFAULT NULL,
  ts2 TIMESTAMP NULL DEFAULT 0,
  ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
);
如果将ts1或ts2设为CURRENT_TIMESTAMP,我们在phpmyadmin中会看到这样的错误:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
所以这样我们就可以懂了,而且不必第一个栏位设为CURRENT_TIMESTAMP
以上