MySQL中更新时间字段的更新时点问题

article/2025/8/29 14:23:41

我们在设计表时,通常为了记录数据插入和更新的时间,会定义两个字段,create_time/insert_time和update_time,按照需求,记录插入的时间,会存储到create_time/insert_time字段中,记录更新的时间,会存储到update_time字段中,当创建记录时,会同步更新create_time/insert_time和update_time,然而,当更新记录时,只会更新update_time字段。

虽然我们的工程中设置了这两个字段,但是更新记录时,很可能就发现create_time/insert_time和update_time都做了更新,和实际是相反的。

原因可能就是在代码中没有对时间进行显性地设置,而且对时间的维护是MySQL自身进行管理的,例如,

create table test (id bigint not null auto_increment comment '主键自增',...create_time timestamp not null default current_timestamp comment '创建记录时间戳',update_time timestamp not null default current_timestamp comment '更新记录时间戳',primary key (id)
);

通过SQL,我们看到create_time和update_time设置的都是DEFAULT  CURRENT_TIMESTAMP,因此不管是新创建的记录,还是更新原有的记录,只要是有触发的操作,这两个时间就会被同步修改。

要达到预期效果,就需要改这个了。

解决方案:

将update_time的DEFAULT CURRENT_TIMESTAMP后面再加上条件限制 ON UPDATE CURRENT_TIMESTAMP,这样在更新记录时,只有更新时间被修改,创建时间就是最初创建记录的时间。

MySQL中的CURRENT_TIMESTAMP:

在创建时间字段的时候,

(1) DEFAULT CURRENT_TIMESTAMP

表示当插入数据的时候,该字段默认值为当前时间。

(2) ON UPDATE CURRENT_TIMESTAMP

表示每次更新这条数据的时候,该字段都会更新成当前时间。

这两个操作是MySQL数据库本身在维护,因此就可以根据这个特性来生成"创建时间"和"更新时间"两个字段,不需要代码来维护。

例如,

create table test (id bigint not null auto_increment comment '主键自增',...create_time timestamp not null default current_timestamp comment '创建记录时间戳',update_time timestamp not null default current_timestamp on update current_timestamp comment '更新记录时间戳',primary key (id)
);

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

16e418b4176b1b4403031658516e576a.png

近期更新的文章:

《最近碰到的一些问题》

《磁盘空间分配的初次尝试》

《Oracle的online index rebuild》

《TiDB沙箱环境初体验》

《最近碰到的一些问题》

近期的热文:

《"红警"游戏开源代码带给我们的震撼》

文章分类和索引:

《公众号1000篇文章分类和索引》


http://chatgpt.dhexx.cn/article/t33T1sSo.shtml

相关文章

hexo添加文章更新时间

修改&#xff08;博客主目录&#xff09;/themes/next/layout/_macro/post.swig 文件&#xff0c;在<span class"post-time">...</span>标签后添加 {%if post.updated and post.updated > post.date%}<span class"post-updated"> |…

win10 更新计算机时间,win10更新时间太长怎么回事_windows10更新时间太久解决教程...

在使用win10系统的时候&#xff0c;经常会需要电脑进行更新&#xff0c;而我们会发现每次更新都会耗时1-2个小时时间。让人等的不耐烦&#xff0c;遇到win10更新时间太长怎么回事呢&#xff1f;接下来给大家分享一下windows10更新时间太久解决教程吧。 具体方法如下&#xff1a…

java插入或者修改数据自动更新时间字段

** 方法一:最简单 ** 在sqlyog界面打开相关的表 在要时间"更新"字段打勾 测试成功 每次修改表中数据 时间字段都会更新 ** 方法二:直接获取当前时间set到数据库 ** 例如 Transactional Override public int update(Enterprise enterprise) throws Exception{en…

oracle查表的更新时间,Oracle 查询倒叙查询所有表更新时间

先测试独立一张表的更新时间sql 可用不可用 select max(ora_rowscn), to_char( scn_to_timestamp(nvl(max(ora_rowscn),1002267)),yyyy-mm-dd hh24:mi:ss) from DM00_HSBM8 t; select max(ora_rowscn), to_char( scn_to_timestamp(nvl(max(ora_rowscn),1002267)),yyyy-mm-dd hh…

mysql 自动更新时间_如何设置mysql自动更新创建时间和更新时间

做项目时,希望: 新增记录时,mysql自动将系统的当前时间set到创建时间和更新时间这两个字段中。 更新记录时,mysql只update更新时间字段的时间。 设置mysql自动更新创建时间和更新时间的方法: 找到表中创建时间和更新时间的字段,将其修改为下列代码。 创建时间字段 creat_…

IDEA修改错误提示颜色

File—>Settings —>Editor —>Color Scheme—>General —>Errors and Warning—>Error Unused symbol 未使用方法,属性等 error 错误的属性

ts和vscode设置中文错误提示

ts设置中文错误提示的话&#xff0c;直接命令行设置就行了 yarn tsc --locale zh-CN vscode设置中文错误提示需要打开设置页面&#xff0c;搜索“typescript local”&#xff0c;然后设置中文就行了

element中表单错误提示信息被遮盖

提示信息被遮盖 解决方法 可以给form-item加一个特定的class&#xff0c;不影响其他的提示框&#xff0c;然后设定width&#xff0c;可以把所有内容显示。 代码 vue的template代码 <el-form-item label"用户微信" prop"userWeChat" class"weix…

在vscode中打开错误提示

在vscode中打开错误提示 首先打开vscode&#xff0c;找到左下角的小齿轮点击选择setting 在搜索框中输入error Squiggles回车键找到extensions下面c/c中的error Squiggles&#xff0c;如使用其他语言找到自己对应的语言就行&#xff1b;并分别点击user&#xff0c;workspace&…

HTML5自定义表单验证错误提示信息

有如下HTML结构&#xff1a; <form action"ok.html"><input type"text" pattern"\d{1,3}" required id"myinput"><p><input type"submit" value"提交"></p> </form> 当提…

ElementUI表单验证 错误提示不消失原因(最全面,一次解决)

1.原因1&#xff1a;el-form-item上的 prop 网上最普遍回答 prop必须与v-model绑定的参数一致 2.原因2&#xff1a;el-form上的 :model 网上没找到&#xff0c;自己发现的&#xff0c;也是最容易忽略 el-form 标签上必须加上 :model“form” (不是常用的vue标签v-model) fo…

IntelliJ IDEA 编码过程中没有错误提示以及自动提示等等的解决方法

出现这种问题&#xff0c;有可能你开了“Power save mode”&#xff0c;模式&#xff0c;关闭即可&#xff01; 设置路径&#xff1a;“File/Power save mode”

VScode——打开波浪线错误提示的一种方法

按快捷键&#xff1a;ctrlshiftp &#xff0c;输入"启用错误波形曲线"&#xff0c;并点击。 启用后之后&#xff0c;比如当包含的头文件写错后&#xff0c;就会出现波浪线警告。

计算机自检报错无法开机,常见电脑开机自检BIOS错误提示解决方法

有的时候用户电脑开机自检过程中BIOS出错提示,很多对电脑不了解或者英文不懂的朋友不知道电脑哪里出了问题,出现了电脑开机自检错误的时候,一般小问题都可以自行恢复的。但是有的自检错误需要您的修正,今天给大家带来电脑开机自检BIOS错误提示的解决方法,一般常见得BIOS提…

VS发生生成错误,但错误列表无错误提示。

VS发生生成错误&#xff0c;但错误列表无错误提示。 可能原因&#xff1a; 1.生成项目框架版本可能低于引用项目框架版本。 解决办法&#xff1a; 改变生成项目框架版本&#xff0c;右键项目》属性》应用程序》目标框架

LayUI表格初始化错误(请求异常,错误提示:parsererror)

最近刚使用layui&#xff0c;不得不说挺强大的&#xff01;&#xff01; 下面是本人在layui初始化表格时踩的坑 表格初始化失败&#xff0c;并提示&#xff08;请求异常&#xff0c;错误提示&#xff1a;parsererror&#xff09; 首先说一下&#xff0c;这个是因为给表格初始化…

【VSCode】关闭讨厌的语法检查、语法自动检查、代码错误自动提示、错误提示

刚下载完 VSCode 使用的过程中&#xff0c;会发现导出提示语法错误&#xff08;但是明明是没错的&#xff09;&#xff0c;非常讨厌&#xff1a; 为什么会这样呢&#xff1f;因为编辑器无法识别这是python文件&#xff0c;所以导致其出现乱报错的情况&#xff0c;解决办法如下…

Bootstrap错误提示功能

使用Bootstrapde 时候&#xff0c;在开发阶段&#xff0c;用来提示自己出现的错误&#xff0c;那就要在JS中加入一下代码判断&#xff0c;注意&#xff1a;只在开发阶段使用 <script>// 用来提示自己出现的错误---只限于开发阶段使用(function () {var s document.c…

[idea] idea没有错误提示的解决方法(一直处于错误分析中)

20190527更新治根的解决办法 问题描述: idea没有自动报错. 例如随便写一段错误代码 这里Date类都没有导入,还赋了布尔值,大错特错,idea却没有错误提示. 按f2发现idea一直处于错误分析中的状态. 解决方法: 有三种情况,分别是: 开启了省电模式 注意不要开启省电模式. 没有…

vscode中文错误提示---插件篇

打开vscode&#xff0c;找到error Lens插件&#xff0c;如下图 2. 使用插件后&#xff0c;效果如下图