转自:http://www.cnblogs.com/spring4/archive/2012/02/29/2483765.html
MYSQL中TIMESTAMP类型的默认值
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
—— ————————————————————————————-
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
2 2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
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
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
—— ———————————————————
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;
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
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
—— —————————————————————
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
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
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它
相关推荐
在MySQL 5.6中,`TIMESTAMP`数据类型和`explicit_defaults_for_timestamp`参数是数据库管理和时间戳处理的关键元素。`TIMESTAMP`通常用于记录数据记录的创建或修改时间,而`explicit_defaults_for_timestamp`参数则...
在本篇内容中,我们将深入探讨如何在MySQL中为datetime类型设置默认值。 首先,当你创建一个新的表时,可以直接在建表语句中为datetime字段指定默认值为CURRENT_TIMESTAMP。例如,以下是一个创建包含datetime字段`...
MySQL 中的 datetime 类型字段无法使用函数作为默认值,因此无法使用 `create_time datetime default now()` 的形式设置默认值。代替的方案是使用 TIMESTAMP 类型代替 DATETIME 类型。 TIMESTAMP 类型有两个重要的...
在SQL Server(MSSQL)中,我们可以为`date`类型设置`GETDATE()`作为默认值,为`char`类型设置`NULL`,但在MySQL中,这些规则并不适用。例如,对于MySQL,`date`类型默认值应留空(NULL),`char`类型如果不能为空,...
MySQL中的TIMESTAMP字段类型是用来存储时间戳值的,它可以记录自1970年1月1日00:00:00 UTC(协调世界时)以来的秒数。TIMESTAMP在不同的情境下有不同的用法,这主要体现在它的默认值和更新策略上。 1. **TIMESTAMP ...
MySQL数据库系统中,时间数据类型是用来存储日期和时间值的,其中包括`DATE`、`DATETIME`和`TIMESTAMP`。这些类型在某些方面相似,但在其他方面却有着明显的区别。下面将详细介绍`DATETIME`和`TIMESTAMP`的比较,并...
本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...
在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。...
TIMESTAMP 类型是 MySQL 中的一种日期时间类型,可以自动更新当前时间。使用 TIMESTAMP 类型可以实现自动设置默认时间值的功能。例如,创建一个名为 `test_time` 的表,其中包含一个 `create_time` 字段,类型为 ...
在本文中,我们将讨论 MySQL 中的时间类型,包括 DATE、TIME、DATETIME、TIMESTAMP 和 YEAR 等五种类型,并介绍各自的特点和应用场景。 DATE 类型 DATE 类型用于存储日期信息,格式为 ‘YYYY-MM-DD’,占用 3 字节...
MySQL中的`TIMESTAMP`数据类型是一个非常有用但同时也存在特定限制的时间戳字段。它用于存储日期和时间信息,与`DATETIME`数据类型相似,但有一些显著的区别。 `TIMESTAMP`在MySQL中占据4个字节,可以表示从1970年1...
MySQL中的TIMESTAMP数据类型在不同版本之间有着显著的差异,特别是在MySQL 5.6.6之后。在理解这些差异之前,我们首先需要了解TIMESTAMP的基本概念。TIMESTAMP用于存储日期和时间信息,它通常占用4个字节,可以表示从...
MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、定点型、字符串、日期时间型、枚举型等多种类型。下面将对 MySQL 数据类型进行详细的介绍。 整型 MySQL 中的整型包括 tinyint、smallint、...
在MySQL数据库中,`TIMESTAMP`数据类型常用于记录时间戳,它允许自动初始化或更新为当前日期和时间。然而,不同版本的MySQL对`TIMESTAMP`列的默认值和自动更新行为有不同的处理方式,这可能导致在不同环境下的兼容性...
总的来说,虽然MySQL不支持直接在列定义中使用`NOW()`作为默认值,但通过使用`TIMESTAMP`列并利用其自动更新特性,可以实现类似的效果,记录数据的创建或修改时间。在处理`TIMESTAMP`列时,理解其显示尺寸和存储精度...
在MySQL 5.6中,当你遇到"TIMESTAMP with implicit DEFAULT value is deprecated"这个警告时,这表明你在数据库的表定义或数据插入语句中使用了时间戳(TIMESTAMP)字段,并且该字段没有显式地设定默认值。这种做法在...
例如,MS SQL中的`datetime`在MySQL中可能对应为`datetime`或`timestamp`,而`money`类型在MySQL中通常用`decimal`来表示。因此,转换过程中需要对数据类型进行适配,以确保数据的一致性和完整性。 接下来,我们...