触发器在增加记录或修改记录时要分别触发,而不能同时触发。
请参考如下触发器的触发条件(insert or update or delete)
create or replace trigger man_tri
after insert or update or delete on a
for each row
begin
if inserting then
insert into a1 values(:new.id,:new.num,:new.d,:new.sl1,:new.sl2,:new.sl3);
elsif updating then
update a1 set id=:new.id,num=:new.num,d=:new.d,sl1=:new.sl1,sl2=:new.sl2,sl3=:new.sl3 where id=:old.id;
else
delete from a1 where id=:old.id;
end if;
end;
/
请参考如下触发器的触发条件(insert or update or delete)
create or replace trigger man_tri
after insert or update or delete on a
for each row
begin
if inserting then
insert into a1 values(:new.id,:new.num,:new.d,:new.sl1,:new.sl2,:new.sl3);
elsif updating then
update a1 set id=:new.id,num=:new.num,d=:new.d,sl1=:new.sl1,sl2=:new.sl2,sl3=:new.sl3 where id=:old.id;
else
delete from a1 where id=:old.id;
end if;
end;
/
解决方案 »
- 一个关于pl\sql的小问题,急!!!!!!
- 我是做javaweb开发的,给我推荐一本数据库的书吧
- 见到论坛上这么多人说[马甲马甲],[马甲]是什么意思啊?
- COBOL使用游标,一次fetch100件数据,请问如何实现(oracle)
- oracle 中replace替换回车换行符号无效
- redhat 9 安装oracle8.1.7问题!
- fetch 取不出值来
- Instance和troubleshooting是个什么概念
- 如何在oracle后台数据库级的触发器中获得用户对数据库发出的每条sql语句?
- 请问高手,如何将ACCESS中的“长二进制数据”字段的内容导入ORACLE的表中?
- 用DECODE 函数如何实现相加的运算,SIGN 可以实现减法,如何实现加法
- 关于在PL/SQL Developer如何修改某一条记录的问题?????????????????
after insert or update or delete on a
for each row
begin
update a1 set id=:new.id,num=:new.num,d=:new.d,sl1=:new.sl1,sl2=:new.sl2,sl3=:new.sl3 where id=:old.id;
exception when other then
--把出错信息记录在一个表中
insert into errors values ...
end;
/
在触发器触发时,修改a1的某个字段值,但由于当时a1的记录正由其它的程序修改,被锁定了,触发器在到达等待时间时仍然未能解锁,所以就报了一个等待锁时超时的错.