数据库触发器

简介: 数据库触发器

数据库触发器


介绍


什么是触发器


存储过程是对特定的SQL语句进行封装,完成数据库中复杂的数据处理逻辑,用于提供程序复用性。

触发器是一种特殊的存储过程,可以对表实施复杂的完整性约束,保持数据的一致性。


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


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

激活触发器的操作有: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] 触发器名称;


相关文章
|
9月前
|
关系型数据库 MySQL 数据处理
轻松入门MySQL:数据库之触发器,自动守护你的数据宝库(17)
轻松入门MySQL:数据库之触发器,自动守护你的数据宝库(17)
137 0
|
6月前
|
关系型数据库 MySQL 数据库
什么是数据库触发器?
【8月更文挑战第3天】
675 10
什么是数据库触发器?
|
6月前
|
存储 SQL 数据库
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
这篇文章介绍了数据库中触发器的设计概念,包括创建、修改、删除触发器的方法,并通过实验内容教授如何使用SQL命令创建DML触发器以及如何利用触发器实现数据的完整性和自动化处理。
触发器的设计、掌握存储过程的基本概念和创建、执行、删除方法。掌握数据库备份的方法和数据库恢复的方法。
|
8月前
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)
|
9月前
|
SQL Oracle 关系型数据库
数据库sqlserver-----触发器的插入,更新和删除
数据库sqlserver-----触发器的插入,更新和删除
732 3
|
8月前
|
关系型数据库 MySQL 数据库
MySQL数据库——触发器-案例(Insert类型、Update类型和Delete类型)
MySQL数据库——触发器-案例(Insert类型、Update类型和Delete类型)
200 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库——触发器-介绍、语法(创建,查看,删除)
MySQL数据库——触发器-介绍、语法(创建,查看,删除)
510 0
|
9月前
|
监控 Oracle 安全
Oracle用户事件触发器:数据库世界的“福尔摩斯”
【4月更文挑战第19天】Oracle用户事件触发器是数据库中的监控机制,类似于“福尔摩斯”,在用户执行特定操作时自动触发。它们关注用户行为而非数据变化,可用于权限检查、安全监控、性能优化等。通过DDL语句创建,需注意逻辑清晰、条件合适及定期更新,以适应数据库变化和业务发展。掌握其使用能有效保障数据安全与稳定。
|
9月前
|
存储 SQL 数据挖掘
视图、触发器和存储过程:提升数据库功能
视图、触发器和存储过程:提升数据库功能
117 1
|
存储 SQL 关系型数据库
MySQL存储过程与触发器:提升数据库操作效率与数据一致性
本文深入探讨了MySQL数据库中的存储过程与触发器,通过丰富的代码示例,详细介绍了存储过程的定义与调用、参数与变量的应用,以及触发器的创建、使用和实际案例。存储过程作为预定义的一组SQL语句,能够提高数据库操作的效率,实现数据逻辑和复杂计算。同时,触发器作为在特定事件触发时自动执行的SQL语句,能够保障数据一致性和逻辑完整性。通过代码实例,读者将了解如何创建、调用存储过程,如何利用参数和变量进行数据处理,以及如何创建触发器并应用于实际场景。这些技术将使读者能够在数据库管理中更高效地进行操作和保障数据的完整性,为应用程序提供可靠的数据支持。
982 0

热门文章

最新文章