再論MySQL TIMESTAMP屬性



2013-05-22_090543

 

這是MySQL 5實力養成暨評量裡的4-49.『MySQL中,欄位為TIMESTAMP時,設定DEFAULT為CURRENT_STAMP的欄位可以有幾個?』

答案:(D) 1

這題跟MySQL TIMESTAMP屬性是姊妹題,之前ㄚ琪可能不太瞭解中文譯出來的結果,所以這題又遭到滑鐵盧,然後再一次測試,發現了設定DEFAULT為CURRENT_STAMP的欄位只能有一個,因為會跟ON UPDATE這個觸發程序有關,而觸發程序又只能有一個事件而已,所以表格中就只能有一個欄位可以設為CURRENT_STAMP。

我們以下面這個為例:

CREATE TABLE t
(
  ts1  NULL  NULL,
  ts2 TIMESTAMP NULL DEFAULT 0,
  ts3 TIMESTAMP NULL DEFAULT 
);
如果將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
以上
Print Friendly, PDF & Email

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料