zoukankan      html  css  js  c++  java
  • mysql timestamp自动更新 简单

    最近遇到timestamp的自动更新时间问题,记录如下:

    先看mysql官方手册(翻译稿):

    在CREATE TABLE语句中,可以用下面的任何一种方式声明第1个TIMESTAMP列:


    1.用DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句,列为默认值使用当前的时间戳,并且自动更新。


    2 .不使用DEFAULT或ON UPDATE子句,与DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMP相同。


    3.用DEFAULT CURRENT_TIMESTAMP子句不用ON UPDATE子句,列为默认值使用当前的时间戳但是不自动更新


    4. 不用DEFAULT子句但用ON UPDATE CURRENT_TIMESTAMP子句,列有默认值0并自动更新。


    5.用常量DEFAULT值,列有给出的 默认值。如果列有一个ON UPDATE CURRENT_TIMESTAMP子句,它自动更新,否则不。换句话说,你可以为初始值和自动更新的值使用当前的时间戳,或者其中一个使用,或者两个皆不使用。(例如,你可以指定ON UPDATE来启用自动更新而不让列自动初始化)。

    补充说明:

    1. 如果表中多列为timestamp,那么每次更新数据的时候,对应行的第一个timestamp会自动更新为CURRENT_TIMESTAMP

    2. timestamp大体和datetime一致,从实现上来讲,用datetime其实基本可以满足需求,从业务端来控制数据值,而不是让数据库来做

    3. 要让行自动更新timestamp值,可以设置该字段的属性为 ON UPDATE CURRENT_TIMESTAMP,这样如果该行的数据列发生变化,则timestamp会自动更新。

    参见:http://dongxuan.iteye.com/blog/901465

    image

  • 相关阅读:
    shell遍历文件夹并执行命令
    安装PIL的坑
    iptables不小心把127.0.0.1封了,导致redis连不上
    python读取中文
    不要在基类析构函数中调用纯虚函数,否则运行时会报错“pure virtual method called”
    阿里云64位centos6.3系统上编译安装redis
    Git
    Easy Mock
    Sortable
    几个框架
  • 原文地址:https://www.cnblogs.com/chyong168/p/2770946.html
Copyright © 2011-2022 走看看