oracle中触发器可以做什么?
2个回答
展开全部
。触发器的定义就是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。
然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
具体举例:
1.
在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2.
在一个表吕定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。
不知这样讲述可否清楚了呢?
然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
具体举例:
1.
在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
2.
在一个表吕定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。
不知这样讲述可否清楚了呢?
展开全部
触发器是个特殊的
存储过程
,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行update,delete,操作时就会激活它执行,如例子:create
or
replace
trigger
tigger_select_update
before
update
or
delete
on
mytable
for
each
row
declare
begin
if
:old.name='1'
then
raise_application_error(-20001,'不允许删除和修改');
dbms_output.put_line('load......');
end
if;
end;
存储过程
,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行update,delete,操作时就会激活它执行,如例子:create
or
replace
trigger
tigger_select_update
before
update
or
delete
on
mytable
for
each
row
declare
begin
if
:old.name='1'
then
raise_application_error(-20001,'不允许删除和修改');
dbms_output.put_line('load......');
end
if;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询