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


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




  • 相关阅读:
    CentOS查看系统信息和资源使用已经升级系统的命令
    192M内存的VPS,安装Centos 6 minimal x86,无法安装node.js
    Linux限制资源使用的方法
    多域名绑定同一IP地址,Node.js来实现
    iOS 百度地图大头针使用
    iOS 从app跳转到Safari、从app打开电话呼叫
    设置cell背景色半透明
    AsyncSocket 使用
    iOS 监听键盘变化
    iOS 7 标签栏控制器进行模态视图跳转后变成透明
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226191.html
Copyright © 2011-2022 走看看