MySQL中创建时间和更新时间的自动更新的实现示例

目录
  • 一、需求
  • 二、方案
  • 创建时间(创建日期)、修改时间(修改日期)设置为自动生成
    • 创建日期的自动生成
    • 更新日期的自动生成

一、需求

当新增记录的时候,MySQL自动将系统的当前时间 set 到创建时间和更新时间这两个字段中。
当更新记录的时候,MySQL 只 update 更新时间字段的时间,而不修改创建时间字段对应的值。

二、方案

找到表中对应的创建时间和更新时间的字段,将其修改如下:

  • 创建时间字段creat_time timestamp NULL DEFAULT CURRENT_TIMESTAMP
  • 更新时间字段update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

如此便不需要在代码中对记录设置创建时间和修改时间了。在 navicat 中的操作:找到相应的表—右击—>点击“设计表”—>如下图:

插入记录时自动生成创建时间:

更新记录时自动生成修改时间:

创建时间(创建日期)、修改时间(修改日期)设置为自动生成

创建日期的自动生成

创建日期的自动生成比较好说:
字段默认值设置为 CURRENT_TIMESTAMP ,这样在新增的时候,日期会自动生成。
sql语句为:

CREATE TABLE T_USER(
  CREATE_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP  ,
  UPDATE_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

当然,数据库设计工具也可以直接设置。

更新日期的自动生成

更新日期稍微麻烦一点,因为默认值是新增的时候才有效,update的时候不会触发default的逻辑。

这里用触发器:

create or replace trigger T_USER_UPDATE_TRIGGER
before update on T_USER for each row
begin
     :new.UPDATE_DATE := sysdate;
end;

到此这篇关于MySQL中创建时间和更新时间的自动更新的文章就介绍到这了,更多相关MySQL自动更新创建时间和更新时间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL timestamp自动更新时间分享

    通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项.MySQL也有默认值timestamp,但在MySQL中,不仅是插入就算是修改也会更新timestamp的值! 这样一来,就不是创建日期了,当作更新日期来使用比较好! 因此在MySQL中要记录创建日期还得使用datetime 然后使用NOW() 函数完成! 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  在创建新记录和修改现有记

  • MySQL建立唯一索引实现插入重复自动更新

    前言 在我们往数据库插入数据的时候,需要判断某个字段是否存在,如果存在则执行更新操作,如果不存在则执行插入操作,如果每次首先查询一次判断是否存在,再执行插入或者更新操作,就十分不方便.下面给大家分享个方法,方便大家实现这一功能,下面来一起看看吧. ON DUPLICATE KEY UPDATE 这个时候可以给这个字段(或者几个字段)建立唯一索引,同时使用以下 sql 语句进行插入或更新操作: INSERT INTO table (id, user_id, token) VALUES (NULL,

  • mysql 实现添加时间自动添加更新时间自动更新操作

    在数据库使用中经常使用到时间字段.常用的有创建时间和更新时间. 然而在使用中想要创建时间在创建的时候自动设置为当前时间,更新时间在更新时自动更新为当前时间. 创建表 stu CREATE TABLE `stu` ( 'id' int NOT NULL AUTO_INCREMENT, 'createTime' timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 'moditiyTime' timestamp DEFAULT CURRENT_TIM

  • MySQL中创建时间和更新时间的自动更新的实现示例

    目录 一.需求 二.方案 创建时间(创建日期).修改时间(修改日期)设置为自动生成 创建日期的自动生成 更新日期的自动生成 一.需求 当新增记录的时候,MySQL自动将系统的当前时间 set 到创建时间和更新时间这两个字段中.当更新记录的时候,MySQL 只 update 更新时间字段的时间,而不修改创建时间字段对应的值. 二.方案 找到表中对应的创建时间和更新时间的字段,将其修改如下: 创建时间字段creat_time timestamp NULL DEFAULT CURRENT_TIMEST

  • 在MySQL中创建带有IN和OUT参数的存储过程的方法

    在 MySQL 中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话.如果你通过命令行控制 MySQL,你需要记住准确的语法.一个快速示例可以很好的帮助你做到这点.在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例.这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法.这些示例已在 MySQL 5.5 中通过测试.我们将用下面的雇员表创建并测试这些储存过程: mysql>

  • MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

    目录 TIMESTAMP类型返回日期时间数据中带有 T 场景描述 通过注解格式化(方法一) 通过全局配置(方法二) MySQL时间类型timestamp知识点 mysql日期时间类型 Timestamp实例 总结 TIMESTAMP类型返回日期时间数据中带有 T 场景描述 MySQL 中使用 TIMESTAMP 类型 实体类使用 java.util.Date 类型 返回 JSON 数据: 通过注解格式化(方法一) 可以在日期类型属性上,或者 GET 方法加上 Jackson 的 @JsonFor

  • 在MySQL中创建实现自增的序列(Sequence)的教程

    项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况(当然概率很小). 所以想到了利用一个独立的自增的sequence来解决该问题. 当前数据库为:mysql 由于mysql和oracle不太一样,不支持直接的sequence,所以需要创建一张table来模拟sequence的功能,理由sql语句如下: 第一步:创建--Sequence 管理表 DROP TABLE IF EXISTS sequence; CREATE TABLE

  • MySQL中创建表的三种方法汇总

    目录 CREATE TABLE CREATE TABLE … LIKE CREATE TABLE … SELECT 总结 SQL 标准使用 CREATE TABLE 语句创建数据表:MySQL 则实现了三种创建表的方法,支持自定义表结构或者通过复制已有的表结构来创建新表,本文给大家分别介绍一下这些方法的使用和注意事项. CREATE TABLE CREATE TABLE 语句的基本语法如下: CREATE TABLE [IF NOT EXISTS] table_name ( column1 da

  • mysql数据库创建账号、授权、数据导出、导入操作示例

    本文实例讲述了mysql数据库创建账号.授权.数据导出.导入操作.分享给大家供大家参考,具体如下: 1.账号创建及授权 grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option; privileges:表示将所有权限授予给用户.也可指定具体的权限,如:SELECT.CREATE.DROP等. on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写"*&qu

  • 详解在MySQL中创建表的教程

    创建表的命令要求: 表的名称 表字段名称 每个字段的定义 语法: 下面是通用的SQL语法来创建一个MySQL表: CREATE TABLE table_name (column_name column_type); 现在,我们将创建下面的教程数据库表中. tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40)

  • MySQL中的日期时间类型与格式化方式

    目录 [1]MySQL中的日期时间类型 ① 详细解释 ② SQL语句实例 ③ timestamp字段 ④ 测试实例 [2]日期时间类型格式化 ① DATE_FORMAT( )函数 ② date_format( ) 转换格式 ③ str_to_date()函数 [1]MySQL中的日期时间类型 MySQL中常用的几种时间类型有:date.datetime.time.year.timestamp 数据类型 占用字节 最小值 最大值 零值表示 date 4 1000-01-01 9999-12-31

  • MySQL中查询字段为空或者为null的方法

    目录 MySQL查询字段为空或者为null 判断为null 判断为空或空格 MySQL查询字段为空(null)时设置默认值 总结 MySQL查询字段为空或者为null 判断为null select * from table where  column is null; 不为null: select * from table where  column is not null; 判断为空或空格 select * from table where column =''; 注:不管是空还是其中有空格都

  • MySQL 中 datetime 和 timestamp 的区别与选择

    目录 1 区别 1.1 占用空间 1.2 表示范围 1.3 时区 2 测试 3 选择 MySQL 中常用的两种时间储存类型分别是datetime和 timestamp.如何在它们之间选择是建表时必要的考虑.下面就谈谈他们的区别和怎么选择. 1 区别 1.1 占用空间 类型 占据字节 表示形式 datetime 8 字节 yyyy-mm-dd hh:mm:ss timestamp 4 字节 yyyy-mm-dd hh:mm:ss 1.2 表示范围 类型 表示范围 datetime '1000-01

随机推荐