create trigger a_tri
before insert or update or delete on a
for each row
declare
num number;
begin
if inserting then
insert into b values(:new.a,:new.b,:new.c,:new.d);
elsif updating then
delete from b where a=:new.a and b=:new.b and c=:new.c and d=:new.d;
insert into b values(:new.a,:new.b,:new.c,:new.d);
else
delete from b where a=:old.a and b=:old.b and c=:old.c and d=:old.d;
end if;
end;
/
before insert or update or delete on a
for each row
declare
num number;
begin
if inserting then
insert into b values(:new.a,:new.b,:new.c,:new.d);
elsif updating then
delete from b where a=:new.a and b=:new.b and c=:new.c and d=:new.d;
insert into b values(:new.a,:new.b,:new.c,:new.d);
else
delete from b where a=:old.a and b=:old.b and c=:old.c and d=:old.d;
end if;
end;
/
解决方案 »
- IMP-00041: 警告: 创建的对象带有编译警告,请高手指教
- 关于结果集的类型
- [提问]大数据量下插表的框架设计
- 调试了两天仍然不能登陆sql plus,请大家帮助,谢谢,,,急
- 關於PL/SQL中SQL Window中寫命令的問題.
- 有什么专业工具可以对oracle 8i数据库进行辅助分析、并可以清楚了解到表表之间对应关系?
- 高分请教触发器问题,继续,答完可立刻给分
- 问个water问题,在oms中如何添加一个节点.
- 无法启动OMS,不知道什么原因?
- pl/sql中,create procedure里可不可以用ddl语句
- 聚簇索引的建立比非聚簇索引的建立占用磁盘空间吗?
- 关于数据库设计的问题(觅高手!)
现在我 不能简单的 就根据更新的记录来删除B表中相应的记录和插入相应的记录,如
A表中记录 1、 S 11 SSS
2、 S 11 DDD
在B表中有记录S作为第一层,11作为第二层,SSS和DDD作为第三层,有字段记录层数。
那我现在要更新表A第二条记录,把11改为22,这样我不能把原先的11从B表中删除,因为11还是B表中的第二层。
所以我还要确定有没有其他记录也为11,这样我就可能面临变异表的问题,我不知如何解决
请问有什么建议和解决方法吗?谢谢!!