mysql中timestamp的自动生成与更新

转自:mysql中timestamp的自动生成与更新

MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样。
1、自动UPDATE 和INSERT 到当前的时间:
表:
---------------------------------
Table Create Table 
------ --------------------------

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 = 2;

数据:

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37

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

表:
---------------------------------
Table Create Table 
------ ---------------------------

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

数据:

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

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37
4 2007-10-08 12:05:19

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

 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

时间: 2024-12-11 08:14:32

mysql中timestamp的自动生成与更新的相关文章

mysql中timestamp字段,在更新这个字段其他数据时候,不更新timestamp的时间

mysql中timestamp字段,在更新这个字段其他数据时候,不更新timestamp的时间 执行这条SQL ALTER TABLE  XXXX(表名)  CHANGE TIME TIME TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; 列如如下所示语句: ALTER TABLE  ai_manager.message_task CHANGE TIME TIME TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

mysql中timestamp,datetime,int类型的区别与优劣

mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值. 3. 实际格式储存(Just stores what you have stored and retrieves the same thing

mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错

mysql无法启动问题的解决方案:mysql.sock重启不自动生成,mysqld_safe启动报错 - superlucky 时间 2013-08-03 11:55:00 博客园-原创精华区 原文  http://www.cnblogs.com/super-lucky/p/superlucky.html 主题 MySQL 本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正. 我的是CentOS6.3+MySQL5.1.57. 重启了一次服务器后, 使用> mysql -

MYSQL中TIMESTAMP类型的默认值理解

MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样. 1.自动UPDATE 和INSERT 到当前的时间:表:——————————— Table   Create Table                                                                         —— ————————————————————————————-t1      CREATE TABLE `t1` (                       

mysql中TIMESTAMP设置默认时间为当前时间

在我们保存数据进入到数据库中时多半会使用像php之类的脚本来获取一个时间保存到mysql中,其实在mysql可以直接使用TIMESTAMP 数据类型来实现默认类型了,下面一起来看看. 很多时候,为了简单,我们在设计数据表的时候,都需要设置时间字段为当前时间.可是MySQL 中,默认值无法使用函数,也就是你无法设置某一列,默认值是 NOW () 这样的处理.那怎么办呢? TIMESTAMP 数据类型.插入的时候,忽略该列即可.  代码如下 复制代码 dt TIMESTAMP /*等价于*/dt T

asp.net中使kindeditor自动生成缩略图

kindedtor编辑器,确实很好用,但是也有很多的不足,比如,我们经常用的图片上传功能,首页如果有图片新闻或者需要显示宿略图的时候,你会发现它并没有提供图片上传自动生成缩略图的功能 ,于是,花了一点时间,对它的上传图片的功能进行了改写,废话少说,直接上代码 图片上传功能调用的是:upload_json.ashx  代码如下 复制代码 using System; using System.Collections; using System.Web; using System.IO; using

MYSQL中TIMESTAMP类型的默认值

MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样. 表: —————————————————————————————————————— t1      CREATE TABLE `t1` (                                                                             `p_c` int(11) NOT NULL,                                              

Editplus中如何取消自动生成的bak文件

Editplus是一款很好的文本编辑器,但是默认会生成后缀名为.bak的备份文件,很容易造成文件目录的混乱. 其实可以通过修改参数属性,让Editplus不要生成这种文件,以Editplus3.3.1为例, 去掉create backup file when saving 上的勾就行了. 如何设置EditPlus的默认文件格式.编码方式及制表符 首先,在Tools(工具)下拉后选择Preferences(首选项),弹出首选项对话框. 然后,在下面的对话框中的左侧选择Files设置项,在右侧面板中

mysql中timestamp自动更新和初始化

1.概述 在我们设计表的时候,考虑将行数据的创建时间和最后更新时间记录下来是很好的实践.尤其是可能需要做数据同步或者对数据新鲜度有要求的表.举些应用场景,更新距上次更新超过2小时的行数据,或者是将一个月前的订单数据归档等等.我们想把这个的需求丢给数据库服务器管理,而不是在应用程序中对每一条语句设置创建时间和最后更新时间字段.在mysql中,这实现起来很容易.我们需要借助于DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 2.简单示例