首页 >数据库 >mysql教程 >如何将 NOW() 设置为 MySQL 中日期时间列的默认值?

如何将 NOW() 设置为 MySQL 中日期时间列的默认值?

Susan Sarandon
Susan Sarandon原创
2025-01-03 13:59:41568浏览

How Can I Set NOW() as the Default Value for a DateTime Column in MySQL?

将 NOW() 设置为日期时间数据类型的默认值

创建数据库表时,将列的默认值设置为确保数据输入一致。对于日期时间数据类型,通常希望使用当前时间作为默认值。

现有表修改挑战

在 MySQL 中,设置默认值 NOW () 对于现有的日期时间列可能具有挑战性。尝试将默认值设置为 NOW() 时遇到的错误消息表明这是一个无效的默认值。

MySQL 5.6.5 及以上版本的解决方案

幸运的是,MySQL 5.6.5 引入了 DATETIME 数据类型,它允许动态默认值。要在创建表时将默认值设置为 NOW(),请使用以下语法:

CREATE TABLE users (
    registerDate DATETIME DEFAULT CURRENT_TIMESTAMP
)

MySQL 5.6.5 之前的解决方案

对于 MySQL 版本在 5.6.5 之前,必须使用 TIMESTAMP 数据类型在记录修改时自动更新日期时间值。不过,值得注意的是,每个表只能存在一个自动更新的 TIMESTAMP 字段。

CREATE TABLE users (
    registerDate TIMESTAMP
)

要防止时间戳值在 UPDATE 时更新,请将 DEFAULT CURRENT_TIMESTAMP 添加到 TIMESTAMP 字段定义中:

CREATE TABLE users (
    registerDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

以上是如何将 NOW() 设置为 MySQL 中日期时间列的默认值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn