数据库触发器入门--使用介绍

😀前言
本篇博文是关于数据库触发器的使用,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

数据库触发器

介绍

什么是触发器

存储过程是对特定的SQL语句进行封装,完成数据库中复杂的数据处理逻辑,用于提供程序复用性。
触发器是一种特殊的存储过程,可以对表实施复杂的完整性约束,保持数据的一致性。
感兴趣的可以看看:https://www.cnblogs.com/phpper/p/7587031.html

为什么能保持数据一致性?

当触发器所关联的数据改变时,触发器会自动被激活,并触发定义的相关操作,以此保持关联数据的完整性。
激活触发器的操作有:insert、update、delecte。

触发器与存储过程的区别

存储过程需要使用“ CALL 存储过程名(参数列表)”进行调用使用,触发器不需要显式调用。

定义了触发器,MYSQL会提供两张逻辑表:new用于存放更新后的记录;old用于存放更新前的记录。

两张表的表结构与触发器所在表结构相同,当触发器执行后,这两张表会自动删除。

创建触发器

语法:

create trigger 触发器名称
触发时间  触发事件
on 表名
for each row 
	程序体

语法解析

触发器名称:创建的触发器的名称。

触发时间:☞触发器执行时间可以用before或after,说明在触发器是在激活他的语句之前或之后触发。

触发事件:激活触发程序的语句类型,如:insert、update、delecte。

表名:触发事件操作的表名称。

for each row :表示任意一条记录上的操作满足触发事件都会触发该触发器。

程序体:触发器被触发后执行的语句集。

例题:

create trigger triaddnum //定义创建触发器的名称
after  insert			//数据插入完成后执行
on orders				//触发器创建在orders表
for each row 			
	set @total=@total +new.inum;//累加新增记录的购买记录

触发器不能显示调用,当触发事件发生时,触发器会自动执行。

//可以通过查看变量查看触发器执行结果。
set @total=0;//定义变量初始值
insert into orders(uid,gid,inum)
valuse(1,4,2),(1,1,3),(1,3,4);//添加数据
select @total;//查看变量@total的值

触发器可以对数据进行验证(存储过程可以嵌套在触发器和事件中)

delimiter//
create trigger tricheck
before insert
on users
for each row
begin 
	if length(new.upwd)>=6 then
		set new.upwd=md5(new.upwd);
	else
		//自定义错误提示数据插入失败
		signal sqlstate'45000'
		set message_text='密码长度小于6,请重新输入';
	end if;
end//

查看触发器是否执行可通过添加数据进行触发。

触发器的使用

查看触发器

show triggers
[{from | in} 数据库名]
[like 匹配模式 | where 条件表达式]

删除触发器

drop trigger [if exists] 触发器名称;

在这里插入图片描述

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨犀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值