這是MySQL 5實力養成暨評量裡的4-49.『MySQL中,欄位為TIMESTAMP時,設定DEFAULT為CURRENT_STAMP的欄位可以有幾個?』
答案:(D) 1
這題跟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 以上