添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

mysql中对于UPDATE_TIME字段我们有时候会设置ON UPDATE CURRENT_TIMESTAMP,表示在数据库数据有更新的时候UPDATE_TIME的时间会自动更新(如果数据库数据值没有变化的话,UPDATE_TIME是不会自动更新的)。那么假设一个场景,我们有一个长事务有10秒,在进入事务第2秒的时候我们执行了一个update操作,然后往下继续执行,直到第10秒,事务提交。此时数据库记录的时间是执行update的时候的第2秒的时间点呢?还是事务提交后的第10秒的时间点?

事务提交完成后,保存到数据库的时间是执行update的第2秒的时间点。

如果UPDATE_TIME只是用来记录更新时间,那么这个自动更新的时间点倒是没有什么影响。但是如果想要用UPDATE_TIME来作为数据同步(比如同步到另一个库,或者es之类的)的依据,那么就不能够这样定义。因为我们使用UPDATE_TIME作为更新,一般也是要求准实时同步,假如一个事务比较长,在事务还没提交过程中我们已经记录了更新的时间,等事务提交后,这个UPDATE_TIME的时间我们是没有同步到的。举个栗子:
一个长事务的开始时间为12:00:00,结束时间为12:00:10,
在12:00:02的时候执行了update操作,此时数据库的UPDATE_TIME的时间还是12:00:00,因为事务还没提交。
与此同时有个定时任务在扫描这段时间内的数据,比如12:00:00到12:00:03,没有数据,因此将12:00:03记录下来,下次从这个时间点继续往后扫描,等12:00:10时长事务提交,此时数据库中该条数据的UPDATE_TIME值为12:00:02,但是定时任务扫描不会再扫描中这条数据了,就会导致同步数据不完整。对这种情况,我们只能够在程序中进行设置UPDATE_TIME的值,而不应该通过数据库本身设置ON UPDATE CURRENT_TIMESTAMP

问题描述mysql中对于UPDATE_TIME字段我们有时候会设置ON UPDATE CURRENT_TIMESTAMP,表示在数据库数据有更新的时候UPDATE_TIME的时间会自动更新(如果数据库数据值没有变化的话,UPDATE_TIME是不会自动更新的)。那么假设一个场景,我们有一个长事务有10秒,在进入事务第2秒的时候我们执行了一个update操作,然后往下继续执行,直到第10秒,事务... 表示每次 更新 这条数据的 候,该字段都会 更新 成当前 时间 这两个操作是 mysql 数据库 本身在维护,所以可以根据这个特性来生成【创建 时间 】和【 更新 时间 】两个字段,且不需要代码来维护 CREATE TABLE `mytest` ( `text` varchar(255) DEFAULT '' COMMENT '内容', `create_time` timestamp NOT NULL DEFAULT CUR
转自:http://blog.csdn.net/dingding_12345/article/details/47905715On Delete和On Update 都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。 ON DELETE restrict(约束):当在父表(即外键的来源表)中删除对应记录 ,首先检查该记录是否有对应外
文章目录 第四十四章 外键关键字 - On Update 用法详解默认 第四十四章 外键关键字 - On Update 指定当外键表中记录的键值被 更新 并且该记录被当前表中的记录引用 ,该外键在当前表中应引起的操作。 要指定当引用记录的键值在外部表中 更新 在当前表中发生的情况,请使用以下语法: ForeignKey keyname(key_props) References pkg.class(ref_index) [ On Update = on update ]; 其中on update 是下列之一:
在部署程序 遇到的一个问题, MySQL 定义举例如下: 代码如下:CREATE TABLE `example` (  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,  `created` TIMESTAMP NOT NULL DEFAULT CURRENT _ TIMESTAMP ,  `last Update d` TIMESTAMP NOT NULL ON UPDATE CURRENT _ TIMESTAMP ,  PRIMARY KEY (`id`)) ENGINE=InnoDB;这段SQL是我从项目中摘取出来的,在测试机器上一切正常,但是部署到生产机器上My
所以以 代码如下:create_time datetime default now() 的形式 设置 默认值是不可能的。 代替的方案是使用 TIMESTAMP 类型代替DATETIME类型。 CURRENT _ TIMESTAMP :当我 更新 这条记录的 候,这条记录的这个字段不会改变。 CURRENT _ TIMESTAMP ON UPDATE CURRENT _ TIMESTAMP :当我 更新 这条记录的 候,这条记录的这个字段将会改变。即 时间 变为了 更新 候的 时间 。(注意一个 UPDATE 设置 一个列为它已经有的值,这将不引起 TIMESTAMP 列被 更新 ,因为如果你 设置 一个列为它当前的值, MySQL 为了效率而忽略更改
数据库 外键定义的一个可选项,用来 设置 当主键表中的被参考列的数据发生变化 ,外键表中响应字段的变换规则的。 update 是主键表中被参考字段的值 更新 ,delete则是指在主键表中删除一条记录: on update 和 on delete 后面可以跟的词语有四个 no action , set null , set default ,cascade no action 表示 不做任何操作...
1. on delete cascade:删除 A 表的数据 ,对应 B 表的数据也会删除 2. on delete set null:删除 A表的数据 ,对应 B 表的外键字段置为空(前提是该字段可以为空) 如果添加外键 没加上面内容,删除 A 表的数据 ,如果对应 B 表有数据就会报错 二、on update 1. on update cascade: 更新 A 表数据的 id ,对应 B 表的外键字段也会 更新 2. on upda..
这是 数据库 外键定义的一个可选项,用来 设置 当主键表中的被参考列的数据发生变化 ,外键表中响应字段的变换规则的。 update 则是主键表中被参考字段的值 更新 ,delete是指在主键表中删除一条记录: on update 和 on delete 后面可以跟的词语有四个 no action , set null , set default ,cascade no action 表示 不做任何操作,
OnInit Update 、On Update 、OnDraw与OnPaint! OnDraw,一般是收到WM_PAINT消息 调用,所以应用程序一般通过Invalidate产生WM_PAINT消息来间接调用OnDraw。当窗体无效等情况下,window也会产生WM_PAINT消息,这 OnDraw 也被间接调用。  On Update 是CView提供的一个方法,一般当文档修改 调用,应用程序
日常开发总结: MySQL 函数:ON UPDATE CURRENT _ TIMESTAMP CURRENT _ TIMESTAMP 如表的创建语句:重点在于 update d_time字段的函数 create table test( id int, ` update d_time` datetime NOT NULL DEFAULT CURRENT _ TIMESTAMP ON UPDATE CURRENT _ TIMESTAMP COMMENT ' 更新 时间 ', `created_time` datetime NOT NULL
目录前言通过建表语句来指定通过 `navicat` 的可视化界面直接操作 mysql 数据库 候会给表中加上 create_time 和 update _time 这两个字段,这两个字段可以 设置 为 datetime 或 timestamp 类型,那么如何为其 设置 默认值并根据当前 时间 更新 呢? 如何做到通过 mysql 数据库 设置 来实现上述字段的自动化填充呢,而不用在 sql 语句中手动来填充呢。解决办法如下 通过建表语句来指定 CREATE TABLE `test` ( `text` var
"on update current _ timestamp " 是一种 MySQL 数据库 中的功能,它可以自动 更新 一条记录的 时间 戳为当前 时间 戳。在创建一个表 ,可以将一个DATETIME或 TIMESTAMP 类型的列 设置 为"on update current _ timestamp ",这样当该记录发生 更新 ,该列的值就会自动 更新 为当前 时间 戳。 举个例子,假设有一个名为"test_table"的表,其中有一个名为" update _time"的列,它被 设置 为"on update current _ timestamp "。如果我们执行一条 UPDATE 语句来 更新 一条记录,那么" update _time"列的值将自动 更新 为当前 时间 戳。这在记录数据的变更 时间 非常有用。
leo_qiu_s: JSONObject和JSONArray最常用的就是存放数据, JSONObject.put("key" , value),JSONObject.get("key"), JSONArray.put(JSONObject),JSONArray.getJSONObject("key"), 这么常用的怎么不写呢? 阿里云elasticsearch实践(最大限度提高写入速度) 51iwowo: 请问,你是直接create还是update JSONObject使用方法 HarveyHarveyHarvey: 很好,感谢您的分享 Myeclipse出现can not be found.please check the location and try again 哦-是我: ueditor使用配置总结 yufeng005: 如果不能将图片上传到webapp下的指定路径下,那么图片上传就没有意义。不知楼主有没有搞定这个问题