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

Trigger non riesce a leggere il tavolo, dopo essere stato licenziato dallo stesso tavolo

Se stai cercando di registrare l'ONO appena inserito, usa :new.ono e salta del tutto la selezione:

INSERT INTO BACKUP_ONO VALUES( VALUE1, VALUE2,VALUE3, :new.ono);

Non credo che tu possa selezionare dalla tabella in cui stai inserendo in quanto il commit non è stato ancora emesso, da qui l'errore della tabella mutante.

PS Considera di non abbreviare. Spiegalo chiaramente per il prossimo sviluppatore e chiamalo ORDER_NUMBER o almeno un'abbreviazione generalmente accettata come ORDER_NBR, qualunque siano gli standard di denominazione della tua azienda. :-)

Cordiali saluti - Se stai aggiornando, puoi accedere anche a :OLD.column, il valore prima dell'aggiornamento (ovviamente se la colonna non è una colonna chiave primaria).