CURRENT_DATE 默认值谜题
在 MySQL 中,尝试将 DATE 列的默认值设置为 CURDATE() 或 CURRENT_DATE 可能看起来像一个直观的选择。然而,在尝试创建这样的表时,它失败了。这个问题讨论了为什么会出现这种行为。
罪魁祸首在于MySQL DEFAULT 子句的限制。正如官方文档中所解释的:
“DEFAULT 子句指定列的默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。”
因此,分配 CURRENT_DATE(一个检索当前日期的函数)作为 DATE 列的默认值不是支持。
例外
此规则的例外是 CURRENT_TIMESTAMP 列类型。对于 TIMESTAMP 列,您可以指定 CURRENT_TIMESTAMP 作为默认值,以自动使用当前日期和时间填充该列。
解决方法
如果您希望保留DATE 列中的当前日期和时间,您可以使用触发器在插入和更新操作时自动更新该字段。
以上是为什么无法将 CURRENT_DATE 设置为 MySQL DATE 列的默认值?的详细内容。更多信息请关注PHP中文网其他相关文章!