这是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 以上
