`

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

在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它

 

本文转自:http://www.2cto.com/database/201202/121374.html

分享到:
评论

相关推荐

    mysql中datetime类型设置默认值方法

    下面小编就为大家分享一篇mysql中datetime类型设置默认值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    mysql 数据类型TIMESTAMP

    在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。...

    MySQL表字段设置默认值(图文教程及注意细节)

    环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 代码如下: –SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT ‘1’ )...

    MySQL timestamp自动更新时间分享

    MySQL也有默认值timestamp,但在MySQL中,不仅是插入就算是修改也会更新timestamp的值! 这样一来,就不是创建日期了,当作更新日期来使用比较好! 因此在MySQL中要记录创建日期还得使用datetime 然后使用NOW() 函数...

    mysql多个TimeStamp设置的方法解读

    timestamp设置默认值是Default CURRENT_TIMESTAMP timestamp设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP 但是由于 一个表中至多只能有一个字段设置CURRENT_TIMESTAMP 两行设置DEFAULT CURRENT_TIMESTAMP...

    MySQL如何为字段添加默认时间浅析

    MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。 类型 字节 格式 用途 是否支持设置系统默认值 date 3 YYYY-MM-DD 日期值 不支持 time 3 HH:MM:SS 时间值或持续时间 不支持 ...

    MySQL数据库:单条数据记录的插入一.pptx

    若表名后不给出列名,则在VALUES子句中要给出每一列(除IDENTITY和timestamp类型的列)的值,如果列值为空,则值必须置为NULL,否则会出错。VALUES子句中的值: (1)表达式:可以是一个常量、变量或一个表达式,也...

    通过实例解析MySql CURRENT_TIMESTAMP函数

    表示当插入数据的时候,该字段默认值为当前时间 ON UPDATE CURRENT_TIMESTAMP 表示每次更新这条数据的时候,该字段都会更新成当前时间 这两个操作是mysql数据库本身在维护,所以可以根据这个特性来生成【创建时间】...

    mysql数据库my.cnf配置文件

    # MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。默认值64 # 假定系统有200个并发连接,则需将此参数设置为200*N(N为每个连接所需的文件...

    mysql自动生成时间1

    1、将字段类型设为 TIMESTAMP 2、将默认值设为 CURRENT_TIMESTAMP。

    mysql 设置默认的时间值

    代替的方案是使用TIMESTAMP类型代替DATETIME类型。 CURRENT_TIMESTAMP :当我更新这条记录的时候,这条记录的这个字段不会改变。 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP :当我更新这条记录的时候,这条...

    mysql基础只是总结

    【mysql中的简单的数学函数】 1、统计函数 count()|max()|min()|avg()|sum() 2、mysql运算 php运算一致(除逻辑运算&& || !) 3、数学函数 pi()|round()|rand()|ceil()|floor|sin()|abs()|mod() 4、特殊的 ...

    MSSQL转MYSQL,gb2312转utf-8无乱码解决方法

    “there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause”,MSSQL一个表中有两个以上的日期时间字段使用了getdate()取默认值,去掉即可。 “BLOB/TEXT column

    MySQL查看和修改时区的方法

    今天发现有一个程序插入的时间不对,而该字段是配置的默认值 CURRENT_TIMESTAMP,初步判断是数据库的时区设置问题。 查看时区 登录数据库查看时区配置: mysql> show variables like '%time_zone%'; +------------...

    mysql datetime查询异常问题解决

    描述:非空无默认值的Datetime类型字段,查询时程序报以下错误: Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp 解决方法:数据库连接串添加zeroDateTimeBehavior参数或者...

    数据库设计命名规范.docx

    注:在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字节 建议在大 数表中含有如下字段 数据库设计命名规范全文共6页,当前为第5页。...

    数据库表概要设计.pdf

    类型先忽略 int varchar timestamp 3. 数据字典 先忽略 comment 4. 默认值 DEFAULT 先忽略 5. 违反第三范式 适当数据冗余减少join (遵守第⼀范式⼆维表 第⼆范式 context + 主键) 【Java ⼏种实体】就是说我们不...

    问卷系统-BD-数据库分册.doc

    "字段名 "字段 "类型 "主键 "非空 "描述 " "分类名称 "class_name "varchar(20) "false "true " " "分类图片 "class_logo "varchar(200) "false "true " " "逻辑删除 "is_delete "tinyint(1) "false "true "默认值0 ...

Global site tag (gtag.js) - Google Analytics