通过java实时查询数据库好像会影响查询效率,搜索网上资料,说最好使用数据库自己的触发器,用于监控数据库表的变化。

缺点是:触发器在数据库后台执行,维护困难,很有可能被忽略。

搜了半天资料,整理如下。

----------------------------------------------------------------------------------------------------------------------------

一、新建触发器(两种方法)

1、命令行创建

(1)命令格式

本部分转载自:https://www.cnblogs.com/CraryPrimitiveMan/p/4206942.html

版本一:

DROP TRIGGER IF EXISTS trigger_name;
CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt

其中:

trigger_name:标识触发器名称,用户自行指定;
trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。

由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。

另外有一个限制是不能同时在一个表上建立2个相同类型的触发器,因此在一个表上最多建立6个触发器。

版本二:

create trigger triggerName
after/before insert/update/delete on 表名
for each row   #这句话在mysql是固定的
beginsql语句;
end;

............详细内容,见转载原文..............

(2)示例代码(监控某一表格,当某一字段发生变化时,将最新字段添加至另一表中)

DELIMITER $        #指定数据库已$作为语句结束符,而不再默认结束符为;
create TRIGGER request_for_match
AFTER UPDATE on realtime_fueltrs
for EACH ROW
BEGIN
IF new.trsStatus<>old.trsStatus AND new.trsStatus=6 THENUPDATE realtime_match_plate SET nozzleID=new.nozzleID;
END IF;
END; 
DELIMITER;           #还原结束符为; 不然其他语句会出错。

2、navicat 通过界面创建

转载地址:https://jingyan.baidu.com/article/36d6ed1f76ec9e1bcf4883aa.html

二、查看已建触发器

1、命令行查看

SHOW TRIGGERS

2、navicat 通过界面查看

三、删除触发器

drop trigger trigger_name

-------------------------------------------------------------------------------------------------------------

最终,我用了java的线程池,定时查询数据库的结果。

【mysql基础知识】数据库中新建触发器,监控数据变化相关推荐

  1. mysql在test库中创建表stu_1.在mysql的test数据库中新建表,表名为student,表结构如下:...

    [简答题]建筑设计的内容有哪些? [简答题]输入一组字符,判断英文大小写以及数字和其他字母的个数.并统计总字符数. [单选题]下列不属于汽车底盘总成的是( ) [简答题]同步器的作用是什么? [单选题 ...

  2. mysql快速复制数据库中所有表及数据至另一个库中

    第一步:新建一个新的数据库(db_copy) CREATE DATABASE `db_copy` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; ...

  3. 数据库设计笔记——MySQL基础知识(四)

    概述 关系型数据库--由表来存储相关的数据,MySQL,SQL Server,Oracle等都是关系型数据库: 元数据:用于集成并管理数据. MySQL数据库 用户数据库:用户根据需求创建数据库 系统 ...

  4. MySQL工作中的实际用_总结工作中经常用到的mysql基础知识

    总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...

  5. 数据库整理一:Mysql基础知识

    文章目录 1.MySQL的架构: 1.Server 层 2.存储引擎层 InnoDB和MyISAM比较 3.锁及粒度 4.InnoDB MVCC 5.关系型数据库和非关系型数据库 2.基础语句 1.创 ...

  6. mysql缺少函数_总结零散的 MySQL 基础知识

    前言 在日常开发中,一些不常用且又比较基础的知识,过了一段时间之后,总是容易忘记或者变得有点模棱两可.本篇主要记录一些关于MySQL数据库比较基础的知识,以便日后快速查看. SQL命令 SQL命令分可 ...

  7. MySQL——基础知识

    目录 一.SQL组成 1)数据定义语言(Data Definition Language,DDL) 2)数据操作语言(Data Manipulation Language,DML) 3)数据查询语言( ...

  8. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物

    MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...

  9. mysql基础知识(一)

    mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...

最新文章

  1. 最短路径问题-Dijkstra
  2. 基于 Java NIO 实现简单的 HTTP 服务器
  3. 怎样检查python环境是否安装好_如何搭建pytorch环境的方法步骤
  4. Apache(2)——进程与模块
  5. jspdf html转换pdf,使用jspdf将HTML转换为pdf时出错
  6. (三)slatstack配置管理
  7. oracle没有自带的程序吗,oracle – 空包定义(没有公共成员)
  8. Win10设置mac
  9. 勒索病毒是什么?防勒索病毒我们该怎么做?
  10. android 7修改机型,Android 7.0支持机型大全
  11. 函数IsValid()
  12. Workbook.SaveAs方法
  13. 面试题10:青蛙跳台阶
  14. 放慢你的额脚步_放慢脚步使我成为更好的领导者
  15. onclick,click和onfocus,change区别
  16. 怎么画一点透视,两点透视,三点透视
  17. java在线观看(jav在线网站)
  18. AVFoundation–简介
  19. 根据收入计算纳税和税后所得
  20. 音乐播放器android-1.0

热门文章

  1. Python——分布式监控项目
  2. GCD和NSThread延时执行对比
  3. 在 Windows Azure 上部署预配置 Oracle VM
  4. 数组——寄包柜(洛谷 P3613)
  5. java sbyte_Java Byte parseByte()方法
  6. 直播丨Oracle 12.2系列安装
  7. AWS RDS强制升级的应对之道——版本升级的最佳实践
  8. 万字通俗讲解何为复杂度
  9. CANN AICPU算子耗时分析及优化探索
  10. Java程序员都要懂得知识点:原始数据类型