将 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中文网其他相关文章!