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: Error: Table Mutating, Trigger may not see it???

Re: Error: Table Mutating, Trigger may not see it???

From: Maxim Krapivin <baltros_at_mail.wplus.net>
Date: Mon, 17 Aug 1998 15:06:40 +0400
Message-ID: <35d80fe7.0@baltrosg2>


Hi !
You can't perform SELECT, INSERT, DELETE, UPDATE on table in it's own trigger. Because table is "mutating" during all modify operation (includes BEFORE and AFTER trigger execution).
When you try to insert records into dependent table, ORACLE must check existance of parent record. But parent table is mutating during trigger execution. This causes error.

Best Regards. Maxim.

Todd Weaver wrote :
>I am trying to construct a very simple trigger AFTER INSERT of a parent
>record, to populate the child record's FK field.....
>
>On INSERT to FACILITIES, the application first generates a random surrogate
>PK in the REGISTRY table, then returns that value to act as the
>FACILITIES.PK value as well. All good.
>
>So, the trigger takes that PK value from FACILITIES, and kicks it back to
>the REGISTRY record's FK to FACILITIES. This has to happen AFTER INSERT,
>since the REGISTRY record is formally a child of the FACILITIES record.
>Hence:
>
>CREATE TRIGGER.....
>AFTER INSERT ON F_FACILITIES
>
>BEGIN
>INSERT INTO REGISTRY (FKEY_FACILITIES)
>VALUES (:NEW.PKEY)
>WHERE REGISTRY.PKEY = :NEW.PKEY;
>END;
>
>The error message states "f_facilities is mutating, the trigger may not see
>it..."
>
>I cannot find a discussion of mutating tables (or even a definition) in any
>on-line ORACLE books, O'Reilly press books, or Oracle press books that I
>have. Any ideas?
>
>Thanks!
>-Veeb
>
>
Received on Mon Aug 17 1998 - 06:06:40 CDT

Original text of this message

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