• MySQL timestamp自动更新时间


    在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下,插入或者修改记录会自动更新timestamp的值。

    1.ON UPDATE CURRENT_TIMESTAMP  只有对记录进行修改时才更新为当前时间,插入是不会的

    2.default CURRENT_TIMESTAMP  在插入记录时,会添加当前时间,但在修改记录时,不会再更新当前时间

    3.default current_timestamp on update CURRENT_TIMESTAMP 在插入或者更新记录时,都会更新当前时间

    4.如果default或on update 子句都不写,就等同于 default current_timestamp on update CURRENT_TIMESTAMP


    下面以几组代码做例子:


    1.ON UPDATE CURRENT_TIMESTAMP

    CREATE TABLE record1 (
    	id INT PRIMARY KEY,
    	name VARCHAR (20) NOT NULL,
    	time TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    )
    1.1插入后查询
     insert into record1(id,name) values(1,'new titile');


    结果:发现插入时,时间不会自动更新进去


    1.2修改后查询

    update record1 set name="1update the title" where id=1;

    结果:修改记录时,会记录时间。


    2.default CURRENT_TIMESTAMP 

    CREATE TABLE record2 (
    	id INT PRIMARY KEY auto_increment,
    	name VARCHAR (20) NOT NULL,
    	time TIMESTAMP default CURRENT_TIMESTAMP
    )
    2.1执行上述同样的插入操作,再查询


    结果:发现插入时自动记录了时间


    2.2执行上述同样的修改操作


    结果:发现时间没有更新。


    3.default current_timestamp on update CURRENT_TIMESTAMP

    CREATE TABLE record3 (
    	id INT PRIMARY KEY auto_increment,
    	name VARCHAR (20) NOT NULL,
    	time TIMESTAMP default current_timestamp on update CURRENT_TIMESTAMP
    )
    3.1执行上述同样的插入操作


     结果执行上述同样的修改操作插入时自动更新了时间


    3.2执行上述同样的修改操作


    结果修改时也自动更新了时间



    4.default或on update 子句都不写

    CREATE TABLE record4 (
    	id INT PRIMARY KEY auto_increment,
    	name VARCHAR (20) NOT NULL,
    	time TIMESTAMP 
    )

    4.1执行上述同样的插入操作



    4.2执行上述同样的删除操作


    结果这里等同于第三种做法




  • 相关阅读:
    新的for增强循环方法,记录一下,方便以后使用
    Intellij IDEA 自动生成 serialVersionUID
    Java知识点汇总[Review]
    D16-常用十种算法[Java数据结构和算法]
    W9-请求响应[JavaWeb]
    D15-图[Java数据结构和算法]
    D14-多路查找树[Java数据结构和算法]
    D13-平衡二叉树[Java数据结构和算法]
    D12-二叉排序树[Java数据结构和算法]
    D11-堆排序和赫夫曼编码[Java数据结构和算法]
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226191.html
Copyright © 2020-2023  润新知