• 关于设置MySQL中create_time和update_time默认值和实时更新


    在这里插入图片描述

    嗨喽,大家好,我是新时代的农民工小赵。最近在做一个公司内部使用的数据导出工具,我主要负责后端接口层的开发 。开发框架选择Spring Boot框架,数据库选用MySQL 数据库。在建库建表和同事沟通过程中,有了如下的思考。

    首先,通过对业务的梳理和与产品同学的沟通,按照整个系统的需求,总共抽取出了六张数据表,对每张表需要的业务字段进行创建外,也添加了create_timeupdate_time字段,便于后期维护。数据库创建时间类型的字段一般设置为 datetimetimestamp 类型。那么,涉及到时间字段的设置时,都会对其设置默认值和update_time字段设置实时更新,接下来梳理其使用方式。

    MySQL给时间字段设置默认值

    建表语句

    CREATE TABLE `test` (
    	`id` int COMMENT 'ID',
        `text` varchar(255) DEFAULT '' COMMENT '内容',
        `create_time` datetime NOT NULL DEFAULT now() COMMENT '创建时间',
        `update_time` datetime NOT NULL DEFAULT now() COMMENT '更新时间'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • DEFAULT now()表示当数据插入数据库时,create_timeupdate_time默认值为当前时间

    实时更新update_time字段

    CREATE TABLE `test` (
    	`id` int COMMENT 'ID',
        `text` varchar(255) DEFAULT '' COMMENT '内容',
        `create_time` datetime NOT NULL DEFAULT now() COMMENT '创建时间',
        `update_time` datetime NOT NULL DEFAULT now() ON UPDATE now() COMMENT '更新时间'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • ON UPDATE now()表示更新这条数据的时候,update_time会更新成当前时间

    让我们来测试一下:

    首先给test表中添加一条数据

    INSERT INTO test(id,TEXT) VALUE(1,"测试数据")
    
    • 1

    在这里插入图片描述
    当前id1的数据update_time时间为2022-08-21 09:39:12,然后修改这条数据,查看update_time的值

    UPDATE test SET TEXT = "修改后测试数据" 
    
    • 1

    在这里插入图片描述
    update_time字段时间已发生更新,后续如涉及到时间更新的操作,推荐此方法进行实现。

    本次分享的文章到这里就结束了,希望对大家有所帮助!!!

  • 相关阅读:
    [ Linux ] Linux信号概述 信号的产生
    什么是原生IP?原生IP与住宅IP有何区别?
    Nacos源码本地启动爬坑记录
    音频(六)——理解 dB
    Python 全栈系列185 Mongo分表性能测试
    MySQL 流程控制
    java毕业设计基于Bootstrap的家具商城系统设计mybatis+源码+调试部署+系统+数据库+lw
    知识点6--Docker的镜像命令
    switch case 枚举常量
    【后端开发】服务开发场景之高性能(CDN与负载均衡,数据库优化,消息队列)
  • 原文地址:https://blog.csdn.net/Zp_insist/article/details/126366974