Mysql及Navicat中如何设置字段自动填充当前时间以及修改时间。

这篇具有很好参考价值的文章主要介绍了Mysql及Navicat中如何设置字段自动填充当前时间以及修改时间。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​该文章讲解了创建时间及修改时间如何通过函数自动填充,并演示了以下几种方式实现列自动填充创建时间及修改时间:

  • 创建表时设置字段为自动更新时间列。
  • 添加新字段为自动更新时间列。
  • 更新已有字段为自动更新时间列。
  • 通过navicat设置字段为自动更新时间列。

函数讲解:

CURRENT_TIMESTAMP表示插入新行时,该列将自动设置为当前时间,create_time设置了默认值为CURRENT_TIMESTAMP后,插入新数据就会在create_time字段中自动填充当前时间。
ON UPDATE CURRENT_TIMESTAMP表示数据行更新时,该列将自动设置为当前时间,update_time设置了数据更新后就会在update_time字段中自动填充当前时间。

注意:这两个函数都可以传参数,传参可以传0-6的数字,表示时间的精度,比如 CURRENT_TIMESTAMP(3)表示精确到毫秒值,在设置时函数与字段的时间精度要保持一致,否则会报错:ERROR 1067 (42000): Invalid default value for 'tmt'

支持的字段类型:

MySQL 5.6.5之后,TIMESTAMPDATETIME列都支持自动更新,且一个表可设置多个自动更新列。
MySQL 5.6.5之前,只有TIMESTAMP支持自动更新,每个表只能有一个自动更新的时间列。

实现方式:

创建表时设置字段为自动更新时间列:

CREATE TABLE table_name (
    id INT NOT NULL AUTO_INCREMENT,
    data VARCHAR(255) NOT NULL,
    create_time datetime DEFAULT CURRENT_TIMESTAMP,
    update_time datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

添加新字段为自动更新时间列:

ALTER TABLE `table_name`
ADD COLUMN `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
ADD COLUMN `update_time ` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间';

更新已有字段为自动更新时间列:

ALTER TABLE `table_name`
MODIFY COLUMN `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
MODIFY COLUMN `update_time ` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间';

通过navicat设置字段为自动更新时间列:

选中列后在默认值写上CURRENT_TIMESTAMP,默认值下面的选项意思是当前列是否要在数据行内容更新时更新当前列时间。
Mysql及Navicat中如何设置字段自动填充当前时间以及修改时间。

总结:

好处: 无需依赖业务更新时间,所有的db操作都会自动记录,便于排查问题。
不足: 数据库服务器和业务服务器可能存在时间差,导致业务变动的时间与数据库时间戳存在差异,给实际维护和使用带来障碍,只能尽可能的校准服务器时间,但不能绝对避免该问题。
文章来源地址https://www.toymoban.com/news/detail-432627.html

到了这里,关于Mysql及Navicat中如何设置字段自动填充当前时间以及修改时间。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 公共字段自动填充工具

    1、问题描述 在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间和修改人等字段。这些字段属于公共字段,也就是很多表中都有这些字段,如下(示例): 字段 类型 create_time datetime update_time datetime create_user bigint update_user bi

    2024年02月16日
    浏览(31)
  • Mybatis Plus 公共字段自动填充功能

    目录   1、问题引入 2、 基本功能实现 3、功能完善 3.1 ThreadLocal 3.1.1 介绍 3.1.2 常用方法 3.2 思路分析 3.3 代码实现 在我们的项目开发中,我们会发现有一些数据库表字段是每个表都有的,例如 : 创建时间,创建人 ,更新时间,更新人。 而我们目前的针对这些字段我们的目前

    2024年02月05日
    浏览(39)
  • 如何校验 MySQL&Oracle 时间字段合规性?

    作者:余振兴 爱可生 DBA 团队成员,热衷技术分享、编写技术文档。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 在数据迁移或者数据库低版本升级到高版本过程中,经常会遇到一些由于低版本数据库参数设置过

    2024年02月11日
    浏览(38)
  • MySQL8 设置自动创建时间和自动更新时间

    业务场景: 1、在数据库表中的数据,要求记录每一条新增数据的创建时间,时间格式要求明确至:年月日:时分秒。 2、在数据库表中的数据,要求记录每一条更新数据的更新时间,时间格式要求明确至:年月日:时分秒。 功能实现: 1、为每张业务表添加create_time 和updat

    2023年04月08日
    浏览(32)
  • MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%🚀

    在MySQL中时间类型的选择有很多,比如:date、time、year、datetime、timestamp... 在某些情况下还会使用整形int、bigint来存储时间戳 根据节省空间的原则,当只需要存储年份、日期、时间时,可以使用year、date、time 如果需要详细的时间,可以选择datetime、timestamp或者使用整形来存储

    2024年02月08日
    浏览(48)
  • MybatisPlus自动填充创建(更新)时间

    目录 一、实现MetaObjectHandler 二、使用注解 在大多数情况下,我们在创建数据库时都会加上创建、更新时间这些字段,为了保证数据的可追溯性,当然肯定还是有操作日志记录表用来做追溯记录。开发中每一次的创建更新都需要手动去设置这一次操作的时间,会有很多的代码

    2024年02月12日
    浏览(32)
  • mybatis-plus 自动填充创建时间/更新时间

    方式一:数据库级别 创建时间create_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP; 更新时间update_time字段设置类型为timestamp,默认值为CURRENT_TIMESTAMP,勾选 根据当前时间戳更新 。 实体类createTime字段设置数据类型为Date; 实体类updateTime字段设置数据类型为Date。 注意:

    2024年02月14日
    浏览(83)
  • 禁止浏览器自动填充密码功能,设置自动填充背景色。

    text设置autocomplete=“off” password设置 autocomplete=“new-password” 两个一起设置,就不会自动填充了。 自动填充后,阴影颜色变为黑色。 需要设置为0,不显示阴影。 设置完后,自动填充没有阴影了。

    2024年02月16日
    浏览(28)
  • elasticsearch自动填充时间,并转换为上海时区

    由于ES默认时区为UTC,比我上海时区慢八个小时且是TZ格式,当我们需要自动填充为yyyyy-MM-dd HH:mm:ss格式时我们就需要对其进行处理。 1、定义预处理管道:chage_utc_to_asiash(管道名可更改) 2、创建索引,指定管道 3、写入数据 4.查看结果  

    2024年02月11日
    浏览(32)
  • 如何设置路由器自动拨号连接上网和某时间自动断线

    路由器如何设置自动拨号上网是普通用户利用一个宽带网络帐号实现多台计算机一起访问网络最常采用的方法,那么如何搭建共享上网的环境呢?下面我们来详细看看具体的内容。 建立了自己的共享上网之后问题也接踵而来,用户想实现每次启动计算机都能自动连接网络的功

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包