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执行上述同样的删除操作


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




  • 相关阅读:
    Hadoop WordCount改进实现正确识别单词以及词频降序排序
    两个栈实现一个队列
    数据库弱一致性四个隔离级别
    vs2008生成lib文件
    开始整理资料
    基于AKS素性检测的素数生成器
    生成指定位数的随机数
    Windows 7远程桌面 重启 关机 任务管理器 命令
    摩根IT实习经验谈及其他
    Hadoop下进行反向索引(Inverted Index)操作
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226191.html
Copyright © 2011-2022 走看看