zoukankan      html  css  js  c++  java
  • 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 
    在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它

    正因为来之不易,所以才有了后来的倍加珍惜。
  • 相关阅读:
    web前端之Javascript的输出
    python编码问题
    python面试题1
    机器学习三剑客补充
    JavaScript设计模式与开发实践 组合模式
    JavaScript设计模式与开发实践 命令模式
    JavaScript设计模式与开发实践 发布—订阅模式
    JavaScript设计模式与开发实践 迭代器模式
    JavaScript设计模式与开发实践 代理模式
    JavaScript设计模式与开发实践 策略模式
  • 原文地址:https://www.cnblogs.com/jjxhp/p/9378974.html
Copyright © 2011-2022 走看看