Mysql及Navicat中设置字段自动填充当前时间及修改时间实现

 更新时间:2023年07月13日 09:29:24   作者:TangBoBoa  
这篇文章主要给大家介绍了关于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,默认值下面的选项意思是当前列是否要在数据行内容更新时更新当前列时间。

总结:

好处: 无需依赖业务更新时间,所有的db操作都会自动记录,便于排查问题。

不足: 数据库服务器和业务服务器可能存在时间差,导致业务变动的时间与数据库时间戳存在差异,给实际维护和使用带来障碍,只能尽可能的校准服务器时间,但不能绝对避免该问题。​

到此这篇关于Mysql及Navicat中设置字段自动填充当前时间及修改时间实现的文章就介绍到这了,更多相关Mysql自动填充当前时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql中SUM()函数使用方法

    Mysql中SUM()函数使用方法

    这篇文章主要给大家介绍了关于Mysql中SUM()函数使用的相关资料,MySQL 的 SUM 函数可以用来对某个列进行求和,但是如果你想要按照某个条件进行求和,可以使用带有WHERE子句的SUM函数,需要的朋友可以参考下
    2023-08-08
  • Mysql中的sql优化实践详解

    Mysql中的sql优化实践详解

    这篇文章主要介绍了Mysql中的sql优化实践详解,SQL优化是指通过改进SQL语句的编写和查询计划的设计来提高数据库查询性能的过程,在优化SQL时,可以采取一些措施来提升查询性能,需要的朋友可以参考下
    2023-09-09
  • 如何用word vb宏来生成sql

    如何用word vb宏来生成sql

    本篇文章是对利用word vb宏来生成sql的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL中CURRENT_TIMESTAMP的使用方式

    MySQL中CURRENT_TIMESTAMP的使用方式

    这篇文章主要介绍了MySQL中CURRENT_TIMESTAMP的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 一文带你探究MySQL中的NULL

    一文带你探究MySQL中的NULL

    我们在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中,下面这篇文章主要给大家介绍了关于MySQL中NULL的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • MySQL复合索引的深入探究

    MySQL复合索引的深入探究

    这篇文章主要给大家介绍了关于MySQL复合索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • MYSQL突破secure_file_priv写shell问题

    MYSQL突破secure_file_priv写shell问题

    这篇文章主要介绍了MYSQL突破secure_file_priv写shell问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MySQL GRANT用户授权的实现

    MySQL GRANT用户授权的实现

    授权就是为某个用户赋予某些权限。MySQL 提供了 GRANT 语句来为用户设置权限。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 大幅优化MySQL查询性能的奇技淫巧

    大幅优化MySQL查询性能的奇技淫巧

    这篇文章主要介绍了大幅优化MySQL查询性能的方法,作者根据实际运行时间比对分析了InnoDB等几个重要的MySQL性能优化点,极力推荐!需要的朋友可以参考下
    2015-06-06
  • Mysql双主搭建的方法步骤

    Mysql双主搭建的方法步骤

    本文主要介绍了Mysql双主搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论