sql >> Database >  >> RDS >> Oracle

Trigger kan de tafel niet lezen, nadat hij door dezelfde tafel is ontslagen

Als u probeert de ONO die u zojuist hebt ingevoerd in te loggen, gebruikt u :new.ono en sla de selectie helemaal over:

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

Ik geloof niet dat je kunt selecteren uit de tabel waarin je bezig bent met invoegen, omdat de commit nog niet is uitgegeven, vandaar de muterende tabelfout.

PS Overweeg niet af te korten. Maak het duidelijk voor de volgende ontwikkelaar en noem het ORDER_NUMBER of op zijn minst een algemeen aanvaarde afkorting zoals ORDER_NBR, wat de naamgevingsnormen van uw bedrijf ook zijn. :-)

Ter info:als je aan het updaten bent, heb je ook toegang tot :OLD.column, de waarde vóór de update (uiteraard als de kolom geen primaire sleutelkolom is).



  1. Wat is het verschil tussen een primaire sleutel en een surrogaatsleutel?

  2. Fout 1033 ontvangen inloggen op de standby

  3. WHERE_IN query met een samengestelde sleutel?

  4. Uitzondering voor kapotte buizen in de Grails-app