首页 >数据库 >mysql教程 >为什么'DEFAULT CURRENT_DATE”在 MySQL 中不起作用(什么时候起作用?)

为什么'DEFAULT CURRENT_DATE”在 MySQL 中不起作用(什么时候起作用?)

Barbara Streisand
Barbara Streisand原创
2024-12-10 06:19:14440浏览

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