CURRENT_DATE 預設值謎題
在MySQL 中,嘗試將DATE 欄位的預設值設為CURRENT_() 或CURRENT_DATE 可能看起來像一個直覺的選擇。然而,在嘗試創建這樣的表時,它失敗了。這個問題討論了為什麼會出現這種行為。
罪魁禍首在於MySQL DEFAULT 子句的限制。如官方文件中所解釋的:
「DEFAULT 子句指定列的預設值。除了一個例外,預設值必須是常數;它不能是函數或表達式。」
因此,指派CURRENT_DATE(檢索目前日期的函數)作為DATE 欄位的預設值不是支援。
例外
此規則的例外是 CURRENT_TIMESTAMP 欄位類型。對於 TIMESTAMP 資料列,您可以指定 CURRENT_TIMESTAMP 作為預設值,以自動使用目前日期和時間填入該資料列。
解決方法
如果您希望保留DATE 欄位中的目前日期和時間,您可以使用觸發器在插入和更新作業時自動更新該欄位。
以上是為什麼無法將 CURRENT_DATE 設定為 MySQL DATE 欄位的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!