您的位置:首页 > 数据库 > MySQL

mysql timestamp的两个默认值:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

2017-12-19 05:49 639 查看
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:

1.
   

CURRENT_TIMESTAMP 

当要向数据库执行insert操作时,如果有个timestamp字段属性设为
 

CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间
   

2.
   

ON UPDATE CURRENT_TIMESTAMP

当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。

总结:

■NOT NULL DEFAULT
CURRENT_TIMESTAMP

■NOT NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

其中,

■CURRENT_TIMESTAMP - 当更新此条记录时,时间戳不会改变

■CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 当更新此条记录时,时间戳将会改变,变为最新时间

设置CURRENT_TIMESTAMP默认值后,插入记录还是更新记录都不需要维护该字段,该字段完全由MySQL维护,就像AutoIncrement字段一样,但如果使用上文设置的datetime字段,则需要手动构造时间更新,比如类似now()等。

对CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有个特殊情况,假如你更新的字段值(UPDATE)没有变化时,MySQL将会忽略更新操作,所以,时间戳也不会改变。另外,如果有多个CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那么MySQL只会更新第一个。

以上内容:原文

更详细可以参考:


MySQL的timestamp类型自动更新问题

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐