博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql_TIMESTAMP类型的默认值
阅读量:7147 次
发布时间:2019-06-29

本文共 2054 字,大约阅读时间需要 6 分钟。

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    2007-10-08 11:53:35
2    2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
数据:
1    2007-10-08 11:53:35
5    2007-10-08 12:00:37
3    2007-10-08 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    2007-10-08 11:53:35
2    2007-10-08 12:00:37
5    2007-10-08 12:00:37
4    2007-10-08 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    2007-10-08 11:53:35    0000-00-00 00:00:00
2    2007-10-08 12:00:37    0000-00-00 00:00:00
3    2007-10-08 12:00:37    0000-00-00 00:00:00
4    2007-10-08 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 
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它 
 
一般在数据库结构设计中,用datetime替换timestamp字段,用程序来实现时间的创建和修改,这样可以控制的更加准确,好处是,不至于你修改该表的任何数据,此时间会随之改变。

转载于:https://my.oschina.net/vshida/blog/87811

你可能感兴趣的文章
Kinect开发学习笔记之(一)Kinect介绍和应用
查看>>
[LeetCode] 3Sum Closest 最近三数之和
查看>>
如何解决严重拖延症
查看>>
C#操作 iis启用父目录
查看>>
JS正则表达式验证数字非常全
查看>>
Android AES加密算法,现在实际上
查看>>
机器学习中的正则化和范数规则化
查看>>
C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
查看>>
Datazen自定义地图
查看>>
Calculate CRC32 as in STM32 hardware (EWARM v.5.50 and later)
查看>>
Android Sdk 国内镜像下载地址
查看>>
C#学习笔记(八):扩展方法
查看>>
【算法导论】多项式求和
查看>>
DELPHI关闭瑞星监控的源代码
查看>>
poj 2762 Going from u to v or from v to u? (推断它是否是一个薄弱环节图)
查看>>
web网站加速之CDN(Content Delivery Network)技术原理
查看>>
IndexReader已解决的问题
查看>>
servlet其工作原理和例子证明
查看>>
document.all使用
查看>>
BZOJ4044 : [Cerc2014] Virus synthesis
查看>>