• MYSQL中TIMESTAMP类型的默认值理解


    MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样。

    1、自动UPDATE 和INSERT 到当前的时间:
    表:
    ———————————

    Table   Create Table                                                                         
    —— ————————————————————————————-
    t1      CREATE TABLE `t1` (                                                                  
              `p_c` int(11) NOT NULL,                                                            
              `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
            ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                                              

    数据:

    1    2017-04-17 11:53:35
    2    2017-04-17 11:54:00

    insert into t1(p_c) select 3;
    update t1 set p_c = 2 where p_c = 5;

    数据:

    1    2017-04-17 11:53:35
    5    2017-04-17 12:00:37
    3    2017-04-17 12:00:37

    2、自动INSERT 到当前时间,不过不自动UPDATE。

    表:
    ———————————

    Table   Create Table                                             
    —— ———————————————————
    t1      CREATE TABLE `t2` (                                      
              `p_c` int(11) NOT NULL,                                
              `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
            ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                  

    数据:
    insert into t2(p_c) select 4;
    update t2 set p_c = 3 where p_c = 5;

    1    2017-04-17 11:53:35
    2    2017-04-17 12:00:37
    5    2017-04-17 12:00:37
    4    2017-04-17 12:05:19

    3、一个表中不能有两个字段默认值是当前时间,否则就会出错。不过其他的可以。
    表:
    ———————————

    Table   Create Table                                                   
    —— —————————————————————
    t1      CREATE TABLE `t1` (                                            
              `p_c` int(11) NOT NULL,                                      
              `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,       
              `p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' 
            ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                        

    数据:
    1    2017-04-17 11:53:35    0000-00-00 00:00:00
    2    2017-04-17 12:00:37    0000-00-00 00:00:00
    3    2017-04-17 12:00:37    0000-00-00 00:00:00
    4    2017-04-17 12:05:19    0000-00-00 00:00:00

    TIMESTAMP的变体
    1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    在创建新记录和修改现有记录的时候都对这个数据列刷新

    2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它

    3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    在创建新记录的时候把这个字段设置为0,以后修改时刷新它

    4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP 
    在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它

    正因为来之不易,所以才有了后来的倍加珍惜。
  • 相关阅读:
    Flash中先获取flv的尺寸然后再显示的方法
    雕虫小艺:Slider控件的制作(Flash)
    用几十行代码写一个可以在PC Web,PC桌面,安卓,iOS上运行的程序
    仰望星空,结果南辕北辙
    Flash播放mp4的两个问题:编码问题和需要下载完后才能播放的问题
    只学一点点:我的技术学习策略
    2012年计划
    提高ipad浏览器下大尺寸xml文件解析的性能
    html5/haXe开发偶感
    支点:技术选择的精髓
  • 原文地址:https://www.cnblogs.com/jjxhp/p/9378974.html
Copyright © 2020-2023  润新知