zoukankan      html  css  js  c++  java
  • 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执行上述同样的删除操作


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




  • 相关阅读:
    AC自动机+全概率+记忆化DP UVA 11468 Substring
    java POI技术之导出数据优化(15万条数据1分多钟)
    验证IP端与数据库Ip端是否重复!!!
    JAVA中IP和整数相互转化(含有掩码的计算)
    Nginx搭建反向代理服务器过程详解
    session原理及实现共享
    Linux部署多个tomcat
    linux下怎么修改mysql的字符集编码
    linux yum 安装mysql
    VM虚拟机下的Linux不能上网
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226191.html
Copyright © 2011-2022 走看看