sql >> Databáze >  >> RDS >> Oracle

Trigger nemůže přečíst stůl poté, co byl vystřelen stejným stolem

Pokud se pokoušíte přihlásit ONO, které jste právě vložili, použijte :new.ono a přeskočte výběr úplně:

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

Nevěřím, že si můžete vybrat z tabulky, do které právě vkládáte, protože potvrzení ještě nebylo vydáno, proto došlo k chybě mutující tabulky.

P.S. Zvažte nezkracování. Vysvětlete to dalšímu vývojáři a nazvěte to ORDER_NUMBER nebo alespoň obecně uznávanou zkratkou jako ORDER_NBR, ať už jsou standardy pro pojmenování vaší společnosti jakékoli. :-)

Pro informaci - Pokud aktualizujete, můžete také přistupovat k :OLD.column, hodnotě před aktualizací (samozřejmě pokud sloupec není sloupcem primárního klíče).



  1. mysql více NEBO NELÍBÍ

  2. Porušeno – nadřazený klíč nenalezen 02291. 00000 – omezení integrity

  3. Jak vybrat optimalizované datové typy pro sloupce [specifické pro innodb]?

  4. Syntaxe Oracle SQL:Uváděný identifikátor