Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: delete record in update trigger possible
Hi,
you can try to use instead of trigger.
SQL> create table tbl_test(n number);
Tabelle wurde angelegt.
SQL> create view viw_test as select * from tbl_test;
View wurde angelegt.
SQL> create trigger trg_test instead of update on viw_test
2 begin
3 delete from tbl_test where n=:old.n;
4 end;
5 /
Trigger wurde erstellt.
SQL> insert into tbl_test values(1);
1 Zeile wurde erstellt.
SQL> commit;
Transaktion mit COMMIT abgeschlossen.
SQL> select * from viw_test;
N
1
SQL> update viw_test set n=5 where n=1;
1 Zeile wurde aktualisiert.
SQL> commit;
Transaktion mit COMMIT abgeschlossen.
SQL> select * from viw_test;
Es wurden keine Zeilen ausgewählt
Regards
Elena Ivanova
"Frank Piron" <empty_at_zero.nil> schrieb im Newsbeitrag
news:opsg8mwdvjm0et4w_at_news.online.de...
> Am 9 Nov 2004 22:40:03 -0800 schrieb Andre <avanrossem_at_hotmail.com>:
>
> > Hello all,
> >
> > I have a simple (?) question.
> > In an update trigger I want to delete a record.
> >
> > For example:
> > If :new.correctprocessed = 1 then
> > delete this record;
> > end if;
> >
> > Is this possible or do I have to do it another way?
>
> This is not possible, because the trigger table is
> "mutating" and therefore the trigger may not "see"
> it.
> Seems to me an odd behaviour, if the database deletes
> records which an application tries to update.
>
> --
> Frank Piron,
> etfrankatkonaddotn
> (leftrotate two)
Received on Thu Nov 11 2004 - 06:40:18 CST