我是靠谱客的博主 淡定羊,最近开发中收集的这篇文章主要介绍mysql触发器输出提示信息_数据库的触发器你了解多少,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

9d72fa7e5a73f5242a27bdb574631edc.png
  • | 作者:新一、
  • | 简书:https://www.jianshu.com/u/b3263fc54bce
  • | 知乎:https://www.zhihu.com/people/qing-ni-chi-you-zi-96
  • | GitHub:https://github.com/JangYt?tab=repositories
  • | 博客地址:https://blog.csdn.net/qq_41153943

一、概念

触发器是与表有关的数据库对象,指的是在insertupdatedelete操作之前或者之后,能够触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以使得应用在数据库端确保数据的完整性以及日志记录,数据校验等操作。

并且可以使用OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是类似的,但是现在的触发器只支持行级触发,并不支持语句级触发。

e98a6b6c1fe50b296400da7405596273.png

二、相关操作

1、触发器的创建

创建触发器的语法结构:

create trigger trigger_name
before/after insert/update/delete
on table_name
[for each row] --- 行级触发器

begin
   trigger_stmt;
end;

通过触发器来记录数据表的数据变化(新增insert、修改update、删除delete)记录。

首先创建一个employee表,并插入数据:

DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `lastName` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `departmentID` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
INSERT INTO `employee` VALUES ('1', '亚索', '123qq.com', '201');
INSERT INTO `employee` VALUES ('2', '李青', '12345@qq.com', '201');
INSERT INTO `employee` VALUES ('3', '剑圣', '2354@qq.com', '202');
INSERT INTO `employee` VALUES ('4', '嘉文', '6565@qq.com', '203');

769613ab0392de1ce56d36412c47e156.png

然后再创建一个日志表来记录employee表进行insertupdatedelete操作的时候的日志情况。

create 

3459949e54b0da7414be5e361dc14948.png

创建insert_trigger触发器记录insert操作的记录:

delimiter就是告诉mysql解释器

f2560b6d34a9800489711e31570b43b2.png

接下来向employee表中插入一条数据,并查询emplog日志表:

INSERT 

插入数据的记录已经通过触发器记录在了emplog日志表中:

7fddaff37752a60476dea5435bca2ce9.png

接下来创建一个update触发器,记录更新操作的记录:

create trigger ipdate_trigger
after update
on employee
for each row
begin
  insert into emplog(id,operation,operate_time,operate_id,operate_params)
  values
  (null,'update',now(),new.id,concat(
  '更新前:(id:',old.id,',lastname:',old.lastname,',email:',old.email,',departmentID:',old.departmentID,'),
   更新后(',new.id,',lastname:',new.lastname,',email:',new.email,',departmentID:',new.departmentID));
end$
update 

f33dc2f6fce19a5ac166cfe29be783a8.png

创建delete触发器:

create 
delete 

fe62ac10bf75f7335e6409489aaf3a6c.png

上面就是如何关于触发器的创建以及使用。

2、触发器的查看

如果想要查看自己创建了哪些触发器,可以通过show triggers命令查看触发器的相关信息。

show triggers$
G:将查询到的横向表格纵向输出方便查看
show triggersG$

954b340210e89a553f6c370edc3d2185.png

97679ca88e2f9c04110f2f0536ffbab0.png

3、触发器的删除

如果需要删除触发器可以通过执行命令:

drop trigger [database_name] trigger_name
database_name为选填条件,如果没有指定数据库,则默认为当前使用的数据库

执行 drop trigger insert_trigger命令后:

071f39b0c048bc1e13975b51555f8fa5.png

以上就是关于触发器的基本使用的介绍。

本文原创首发于微信公众号:1024笔记,关注公众号可获取更多学习资源。

最后

以上就是淡定羊为你收集整理的mysql触发器输出提示信息_数据库的触发器你了解多少的全部内容,希望文章能够帮你解决mysql触发器输出提示信息_数据库的触发器你了解多少所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部