
触发器本质上讲就是事件监控器,可以定义在数据库系统进行某一个 *** 作的前后。
当数据库系统在进行特定的 *** 作时,发现有触发器定义,就去执行触发器定义的功能,从而满足某些特定的需要。
例如,在更新某些数据后,再去更新特定的数据。
这就可以定义一个触发器完成这样的需要。
触发器的优点:
以事件方式来处理当数据发生变化的时候,自动作处理。
缺点:
当数据库之间导出导入的时候,可能会引起不必要的触发逻辑。
是一种应用在数字电路上具有记忆功能的循序逻辑组件,可记录二进位制数字信号“1”和“0”。
数据库触发器是构成时序逻辑电路以及各种复杂数字系统的基本逻辑单元。触发器的线路图由逻辑门组合而成,其结构均由SR锁存器派生而来。触发器可以处理输入、输出信号和时钟频率之间的相互影响。
1)查看表中的触发器类型:
sp_helptrigger:返回对当前数据库的指定表定义的 DML 触发器的类型。sp_helptrigger 不能用于 DDL 触发器。
示例: EXEC sp_helptrigger '表名'
2)查看触发器的有关信息:
sp_help:报告有关数据库对象(syssysobjects 兼容视图中列出的所有对象)、用户定义数据类型或某种数据类型的信息。
示例: EXEC sp_help '触发器名'
3)显示触发器的定义:
sp_helptext:显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。
示例: EXEC sp_helptext '触发器名'
4)查看当前库中所有的触发器:
查询脚本:SELECT FROM Sysobjects WHERE xtype = 'TR'
5)查看当前库中所有的触发器和与之相对应的表:
查询脚本:SELECT tb2name AS tableName,tb1name AS triggerName FROM Sysobjects tb1 JOIN Sysobjects tb2 ON tb1parent_obj=tb2id WHERE tb1type='TR'
1、触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。
2、触发器的触发条件其实在定义的时候就已经设定好了。
3、触发器可以分为语句级触发器和行级触发器。简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
4、具体举例:
1)、 在一个表中定义语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的 *** 作过程。这个删除表的 *** 作就是触发器执行的条件。
2)、 在一个表中定义行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。
5、创建触发器语句
6、触发器作用(应用场景)
(1)数据确认
(2)实施复杂的安全性检查
(3)做日志记录,跟踪表上所做的数据 *** 作等
(4)数据的备份和同步;
扩展资料
一、触发器介绍
1、数据库触发器是一个与表相关联的、存储的 PL/SQL 程序。每当一个特定的数据 *** 作语句(Insert,update,delete)在指定的表上发出时,Oracle 自动地执行触发器中定义的语句序
列。
2、触发器的作用
触发器可用于:
(1)数据确认
(2)实施复杂的安全性检查
(3)做审计,跟踪表上所做的数据 *** 作等
(4)数据的备份和同步
3、触发器的类型
(1)语句级触发器
在指定的 *** 作语句 *** 作之前或之后执行一次,不管这条语句影响了多少行 。
(2)行级触发器(FOR EACH ROW)
触发语句作用的每一条记录都被触发。在行级触发器中使用 old 和 new 伪记录变量,识别值的状态。
4、创建触发器的语法
CREATE [or REPLACE] TRIGGER 触发器名
{BEFORE |AFTER}
{DELETE | INSERT | UPDATE [OF 列名]}
ON 表名
[FOR EACH ROW [WHEN(条件) ] ]
参考资料
百度百科-Oracle触发器
以上就是关于数据库触发器的优缺点以及用法全部的内容,包括:数据库触发器的优缺点以及用法、数据库触发器是什么、sql数据库选择题,在应用中使用sql,触发器,存储过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)