首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

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

发布网友 发布时间:2022-04-26 20:42

我来回答

2个回答

热心网友 时间:2022-04-08 03:56

1、触发器的作用,是每一条记录处理前后进行相应的处理,也就是说你每次处理一条emp的记录,都会执行一次drop和creare emp_c表。。。不要这样做啊,否则你插入1000条记录,就会重建1000次emp_c表
2、commit在触发器里面并不会提交当前事务,事实上insert emp和触发器是在同一个事物中的,相反,只有在这个事物最后,也就是说你的insert emp提交之后,emp_c才会真正提交。追问我写的是语句级触发器。。不是行级触发器所以不会有你说的1。。
至于你说的2,我将after换成before之后,我对emp表执行添加删除,为什么他创建的emp_c表总是比emp表慢一步。例如:往emp插入了4条数据,但emp_c中只有前面的那3条。
也就是说他还是提交了的。只是少了最后那次所做的修改或者添加。

追答执行时候的相关语句能贴出来吗?
说实话不太喜欢用触发器,宁愿用SQL程序块

热心网友 时间:2022-04-08 05:14

你这个明显错了吧。str:='create table emp_c as select * from emp';你再建这个 emp_c 表,但是这个表并没有删除啊,你这样会报错的吧。你应该直接插入追问不是这问题。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com