首頁 >資料庫 >mysql教程 >為什麼「DEFAULT CURRENT_DATE」在 MySQL 中不起作用(什麼時候起作用?)

為什麼「DEFAULT CURRENT_DATE」在 MySQL 中不起作用(什麼時候起作用?)

Barbara Streisand
Barbara Streisand原創
2024-12-10 06:19:14353瀏覽

Why Doesn't `DEFAULT CURRENT_DATE` Work in MySQL (and When Does It?)

CURRENT_DATE/CURDATE() 作為預設DATE 值修正

儘管其外觀簡單,但將CURRENT_DATE 或CURDATE() 設定為預設值使用以下語法的DATE列可能不會函數:

CREATE TABLE INVOICE(
   INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE
)

原因:

雖然這段程式碼看起來很直觀,但由於 MySQL 的限制,它失敗了。根據文檔,DEFAULT 子句要求列具有常數值。不允許使用函數或表達式,例如 CURRENT_DATE。

解決方案:

之前,此問題在 8.0.13 之前的 MySQL 版本中持續存在。但是,在 MySQL 8.0.13 及更高版本中,您現在可以使用 CURRENT_DATE() 或 CURDATE() 作為 DATE 列的預設值,而無需解決方法。

以上是為什麼「DEFAULT CURRENT_DATE」在 MySQL 中不起作用(什麼時候起作用?)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn