oracle触发器after使用(Oracle触发器的触发器类型.)

:暂无数据 2026-09-10 21:20:06 :2

oracle触发器after使用(Oracle触发器的触发器类型.)

本篇文章给大家谈谈oracle触发器after使用,以及Oracle触发器的触发器类型.对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

Oracle触发器的触发器类型.


1、语句级触发器  语句级触发器在每个数据修改语句执行后只调用一次,而不管这一操作将影响到多少行。
例1:创建一个orderdetails_tablelog表及一个AFTER触发器,用于记录是哪些用户删除了orderdetails表中的数据及删除的时间。
--先创建表
createtableorderdetails_tablelog
(
whovarchar2(40),
oper_datedate
);
--再做触发器
createorreplacetriggerdele_orderdetails
afterdeleteonorderdetails
begin
insertintoorderdetails_tablelog (who,oper_date) values(user,sysdate);
end;
注意:在该触发器被触发后,尽管一次删除多条记录,但是触发器只执行一次插入操作;
例2:创建一个 BEFORE 触发器,使得在向 ORDERS 表中插入记录之前对 ShippedDate字段进行检测, 要求其值不允许为周六或周日,发货时间应在8-18点之间.否则将提示错误’发货时间应为工作时间’.
create or replace trigger secure_shippeddate
before insert on orders
for each row
begin
if
(to_char(:new.shippeddate,’dy’)in(’星期六’,’星期日’))
or
(to_number(to_char(:new.shippeddate,’hh34’))not between 8 and 18)
then
raise_application_error(-20500,’发货时间应为工作时间’);
endif;
end;
2、多条件触发器
CREATEORREPLACETRIGGER…  BEFOREinsertorupdateordelete  ON…  BEGIN  IFINSERTINGTHEN  …  ENDIF;  IFDELETINGTHEN  …  ENDIF;  IFUPDATINGTHEN  …  ENDIF;  End;  例3:创建一个多条件触发器,用于实现记录用户对产品表进行的操作类型,操作时间,用户名(创建一个prod_operate_log表记载信息,其中操作编号自动增长).  1)创建prod_operate_log表  CREATETABLEprod_operate_log  (OperIDnumber,  usernamevarchar2(200),  Operate_datetimestamp,  Operate_typevarchar2(10)  );  2)创建序列logID  CREATESEQUENCElogID  STARTWITH1  INCREMENTBY1  NOMAXVALUE  CACHE10;
3、级联触发器  把一个数据库触发器的动作与另一个触发器联系起来,使之触发另一个触发器。
例4:创建3个表A、B、C,在表A上设置一个INSERT触发器,用于向表B添加一条记录,在表B上设置一个INSERT触发器,用于向表C添加一条记录,,在表C上设置一个INSERT触发器,用于对A表中的所有记录进行更新(+10)
  创建A、B、C三张表  CREATETABLEA(AIDnumber);  CREATETABLEB(BIDnumber);  CREATETABLEC(CIDnumber);  创建触发器表  --在表A上创建INSERT触发器  CREATEORREPLACETRIGGERinsert_a  AFTERinsertONA  Begin  insertintobvalues(1);  End;  --在表B上创建INSERT触发器  CREATEORREPLACETRIGGERinsert_b  AFTERinsertONB  Begin  insertintocvalues(2);  End;  -在表C上创建INSERT触发器  CREATEORREPLACETRIGGERinsert_c  AFTERinsertONC  BEGIN  UPDATEa  SETaid=aid+10;  End;  --测试,向A表插入数据5  INSERTINTOAVALUES(5);
4、行级触发器  行级触发器是按触发语句所处理的行激发的,可以引用受到影响的行值。创建触发器时采用关键字FOREACHROW  这种访问是通过两个相关的标识符实现的  :old:用于存放未进行修改前的数据  :new:用于存放进行修改后的数据  例5:修改 orderdetails_tablelog 表,增加两列 orderid,productid,并创建一个 after 触发器,用于记录是哪些用户在什么时间删除了 orderdetails 表中的哪些数据。  --先增加两列  alter table orderdetails_tablelog add orderid number;  alter table orderdetails_tablelog add productid number;  --再做触发器  create or replace trigger dele_orderdetails  after delete on orderdetails  for each row   begin  insert into orderdetails_tablelog(who,oper_date,orderid,productid)  values(user,sysdate,:old.orderid,:old.productid);  end;

oracle触发器before和after的问题求解答

1、触发器的作用,是每一条记录处理前后进行相应的处理,也就是说你每次处理一条emp的记录,都会执行一次drop和creare emp_c表。。。不要这样做啊,否则你插入1000条记录,就会重建1000次emp_c表
2、commit在触发器里面并不会提交当前事务,事实上insert emp和触发器是在同一个事物中的,相反,只有在这个事物最后,也就是说你的insert emp提交之后,emp_c才会真正提交。

触发器的应用和用法

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 TRIGGER 触发器名 

{BEFORE |AFTER} 

{DELETE | INSERT | UPDATE } 

ON 表名 

参考资料

百度百科-Oracle触发器

文章分享结束,oracle触发器after使用和Oracle触发器的触发器类型.的答案你都知道了吗?欢迎再次光临本站哦!

oracle触发器after使用(Oracle触发器的触发器类型.)

本文编辑:admin

更多文章:


arcgis怎么设置文本框样式?用JS怎么实现一个把一个文本框中的选中内容加粗,效果基本上和编辑器的加粗效果相同急需

arcgis怎么设置文本框样式?用JS怎么实现一个把一个文本框中的选中内容加粗,效果基本上和编辑器的加粗效果相同急需

今天给各位分享arcgis怎么设置文本框样式的知识,其中也会对arcgis怎么设置文本框样式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年11月6日 10:50

停止运行的快捷键(电脑怎么停止运行程序快捷键)

停止运行的快捷键(电脑怎么停止运行程序快捷键)

其实停止运行的快捷键的问题并不复杂,但是又很多的朋友都不太了解电脑怎么停止运行程序快捷键,因此呢,今天小编就来为大家分享停止运行的快捷键的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年11月6日 10:40

bios setup(“Bios setup”怎么在电脑里面设置)

bios setup(“Bios setup”怎么在电脑里面设置)

这篇文章给大家聊聊关于bios setup,以及“Bios setup”怎么在电脑里面设置对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年11月6日 10:00

三个表盘都代表什么(卡西欧手表里面三个小表盘是什么意思)

三个表盘都代表什么(卡西欧手表里面三个小表盘是什么意思)

各位老铁们,大家好,今天由我来为大家分享三个表盘都代表什么,以及卡西欧手表里面三个小表盘是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年11月6日 08:10

国产免费的服务器系统(服务器用什么系统)

国产免费的服务器系统(服务器用什么系统)

大家好,关于国产免费的服务器系统很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于服务器用什么系统的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年11月6日 07:50

代码生成器app下载手机版(条码生成软件免费)

代码生成器app下载手机版(条码生成软件免费)

各位老铁们好,相信很多人对代码生成器app下载手机版都不是特别的了解,因此呢,今天就来为大家分享下关于代码生成器app下载手机版以及条码生成软件免费的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年11月6日 05:50

php递归删除目录(php怎么删除文件夹和文件夹下的所有文件)

php递归删除目录(php怎么删除文件夹和文件夹下的所有文件)

各位老铁们好,相信很多人对php递归删除目录都不是特别的了解,因此呢,今天就来为大家分享下关于php递归删除目录以及php怎么删除文件夹和文件夹下的所有文件的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年11月6日 03:30

vimoapp安卓手机版(制作VLog常用的APP有哪些呢)

vimoapp安卓手机版(制作VLog常用的APP有哪些呢)

大家好,vimoapp安卓手机版相信很多的网友都不是很明白,包括制作VLog常用的APP有哪些呢也是一样,不过没有关系,接下来就来为大家分享关于vimoapp安卓手机版和制作VLog常用的APP有哪些呢的一些知识点,大家可以关注收藏,免得下

2026年11月6日 01:50

拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)

拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)

“拜登国防授权法案”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看拜登国防授权法案(少数国家对来自中国的旅客采取入境限制措施,中方:将采取对等措施)!

2026年11月6日 00:40

sql数据库触发器怎么写(SQL 触发器编写)

sql数据库触发器怎么写(SQL 触发器编写)

今天给各位分享SQL 触发器编写的知识,其中也会对SQL 触发器编写进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年11月5日 22:50

最近更新

vr体感游戏机品牌(VR什么牌子最好)
2026-11-06 10:30:02 浏览:0
热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
标签列表