Oracle
 sql >> Database >  >> RDS >> Oracle

INSERT trigger per l'inserimento di record nella stessa tabella

La mutazione si verifica ogni volta che hai un trigger a livello di riga che modifica la tabella su cui stai attivando. Il problema è che Oracle non può sapere come comportarsi. Inserisci una riga, il trigger stesso inserisce una riga nella stessa tabella e Oracle si confonde, perché quegli inserti nella tabella a causa del trigger, sono soggetti anche all'azione trigger?

La soluzione è un processo in tre fasi.

1.) Livello di istruzione prima del trigger che istanzia un pacchetto che terrà traccia delle righe inserite.

2.) Attivazione a livello di riga prima o dopo che salva le informazioni sulla riga nelle variabili del pacchetto che sono state istanziate nel passaggio precedente.

3.) Livello di istruzione dopo il trigger che inserisce nella tabella tutte le righe che vengono salvate nella variabile del pacchetto.

Un esempio di questo può essere trovato qui:

http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936

Spero di esserti stato d'aiuto.