首頁 > 資料庫 > mysql教程 > 為什麼不能使用 CURRENT_DATE/CURDATE() 作為 MySQL 中 DATE 欄位的預設值?

為什麼不能使用 CURRENT_DATE/CURDATE() 作為 MySQL 中 DATE 欄位的預設值?

Linda Hamilton
發布: 2024-12-04 21:18:12
原創
270 人瀏覽過

Why Can't I Use CURRENT_DATE/CURDATE() as a Default Value for DATE Columns in MySQL?

DATE 欄位的預設值中的CURRENT_DATE/CURDATE():功能與限制

在MySQL 中,您可能會遇到您希望的情況使用CURRENT_DATE 或CURDATE() 函數為DATE 欄位設定預設值。然而,這種方法經常失敗,引發了為什麼不支持它的問題。

答案在於 MySQL 對預設值的限制。根據 MySQL 文件:

The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.
登入後複製

因此,MySQL 不允許使用 CURRENT_DATE 或 CURDATE() 作為 DATE 欄位的預設值,因為這些函數會動態傳回目前日期。相反,預設值必須是靜態常數。

但是,在 MySQL 8.0.13 及更高版本中,此限制已被刪除。現在您可以使用 CURRENT_DATE 或 CURDATE() 作為 DATE 欄位的預設值。

CREATE TABLE INVOICE(
   INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE
)
登入後複製

此變更允許將目前日期指定為 DATE 欄位的預設值,從而提供更大的彈性資料管理。

以上是為什麼不能使用 CURRENT_DATE/CURDATE() 作為 MySQL 中 DATE 欄位的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板