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自动更新创建时间和更新时间内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
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 timestamp自动更新时间分享
通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项.MySQL也有默认值timestamp,但在MySQL中,不仅是插入就算是修改也会更新timestamp的值! 这样一来,就不是创建日期了,当作更新日期来使用比较好! 因此在MySQL中要记录创建日期还得使用datetime 然后使用NOW() 函数完成! 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记
-
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
随机推荐
- mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)
- java 连接Redis的小例子
- 在oracle数据库里创建自增ID字段的步骤
- 以911新闻为例演示Python实现数据可视化的教程
- Python XML RPC服务器端和客户端实例
- c#调用winrar解压缩文件代码分享
- php生成二维码时出现中文乱码的解决方法
- nginx基础配置说明一则
- 通过length属性判断jquery对象是否存在
- Javascript中arguments用法实例分析
- JS可以控制样式的名称写法一览
- Android Apk去掉签名以及重新签名的方法
- Java模拟HTTP Get Post请求实现论坛自动回帖功能
- python中文编码问题小结
- 枚举类型的定义和应用总结
- Laravel框架中自定义模板指令总结
- nodeJS模块简单用法示例
- Java线程池FutureTask实现原理详解
- 详解Python3中setuptools、Pip安装教程
- Python math库 ln(x)运算的实现及原理