Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: delete record in update trigger possible

Re: delete record in update trigger possible

From: Elena Ivanova <elena.ivanova_at_materna.de>
Date: Thu, 11 Nov 2004 13:40:18 +0100
Message-ID: <cmvmjr$bum$1@pentheus.materna.de>


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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US