Mysql DATETIME 类型的字段设置默认值为当前时间的方法

两种方式,但是要求 MySQL 版本为 5.6+

1
2
3
`registerDate` datetime NOT NULL DEFAULT NOW() COMMENT '注册时间'

`registerDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'

当建表语句中增加ON UPDATE CURRENT_TIMESTAMP时,update更新记录的时候,registerDate会自动更新到当前时间。在Navicat中勾选【根据当前时间戳更新】是一样的效果。


在mysql中, 如果类型为时间的列默认值设为CURRENT_TIMESTAMP, 那么在insert一条新记录的时候,时间字段自动获取到当前时间。如果设置了ON UPDATE CURRENT_TIMESTAMP,则时间字段随着update命令的更新和实时变化。如果两个属性都设置了,那么时间字段默认为当前时间,且随着记录的更新而自动变化。注意,如果仅仅是update操作, 但内容并没有实际变更(受影响行数为零), 则时间值也不会变化。