【mysql基础知识】数据库中新建触发器,监控数据变化
通过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基础知识】数据库中新建触发器,监控数据变化相关推荐
- mysql在test库中创建表stu_1.在mysql的test数据库中新建表,表名为student,表结构如下:...
[简答题]建筑设计的内容有哪些? [简答题]输入一组字符,判断英文大小写以及数字和其他字母的个数.并统计总字符数. [单选题]下列不属于汽车底盘总成的是( ) [简答题]同步器的作用是什么? [单选题 ...
- mysql快速复制数据库中所有表及数据至另一个库中
第一步:新建一个新的数据库(db_copy) CREATE DATABASE `db_copy` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; ...
- 数据库设计笔记——MySQL基础知识(四)
概述 关系型数据库--由表来存储相关的数据,MySQL,SQL Server,Oracle等都是关系型数据库: 元数据:用于集成并管理数据. MySQL数据库 用户数据库:用户根据需求创建数据库 系统 ...
- MySQL工作中的实际用_总结工作中经常用到的mysql基础知识
总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...
- 数据库整理一:Mysql基础知识
文章目录 1.MySQL的架构: 1.Server 层 2.存储引擎层 InnoDB和MyISAM比较 3.锁及粒度 4.InnoDB MVCC 5.关系型数据库和非关系型数据库 2.基础语句 1.创 ...
- mysql缺少函数_总结零散的 MySQL 基础知识
前言 在日常开发中,一些不常用且又比较基础的知识,过了一段时间之后,总是容易忘记或者变得有点模棱两可.本篇主要记录一些关于MySQL数据库比较基础的知识,以便日后快速查看. SQL命令 SQL命令分可 ...
- MySQL——基础知识
目录 一.SQL组成 1)数据定义语言(Data Definition Language,DDL) 2)数据操作语言(Data Manipulation Language,DML) 3)数据查询语言( ...
- MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物
MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...
- mysql基础知识(一)
mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...
最新文章
- 最短路径问题-Dijkstra
- 基于 Java NIO 实现简单的 HTTP 服务器
- 怎样检查python环境是否安装好_如何搭建pytorch环境的方法步骤
- Apache(2)——进程与模块
- jspdf html转换pdf,使用jspdf将HTML转换为pdf时出错
- (三)slatstack配置管理
- oracle没有自带的程序吗,oracle – 空包定义(没有公共成员)
- Win10设置mac
- 勒索病毒是什么?防勒索病毒我们该怎么做?
- android 7修改机型,Android 7.0支持机型大全
- 函数IsValid()
- Workbook.SaveAs方法
- 面试题10:青蛙跳台阶
- 放慢你的额脚步_放慢脚步使我成为更好的领导者
- onclick,click和onfocus,change区别
- 怎么画一点透视,两点透视,三点透视
- java在线观看(jav在线网站)
- AVFoundation–简介
- 根据收入计算纳税和税后所得
- 音乐播放器android-1.0