sql >> Database >  >> RDS >> Oracle

Tabel muteert, trigger/functie ziet deze mogelijk niet (om te voorkomen dat een gemiddeld cijfer onder de 2,5 daalt)

Eerst moet u lezen over triggers, muterende tabelfouten en samengestelde triggers:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS2005

Uw trigger is NA UPDATE OF INSERT OF DELETE. Betekent dat als u de instructies UPDATE OR INSERT OR DELETE in deze tabel uitvoert, de trigger wordt geactiveerd. Maar u probeert dezelfde tabel opnieuw bij te werken in uw trigger, die compl is. mis. Dit is de reden waarom u de fout krijgt. U kunt niet dezelfde tabel wijzigen waarop de trigger wordt geactiveerd. Het doel van trigger is om automatisch te activeren wanneer de tabel in uw geval wordt bijgewerkt, ingevoegd of verwijderd. Wat je nodig hebt is een procedure, geen trigger.



  1. FORALL-verklaring met INDICES-OF Bound-clausule in Oracle Database

  2. Speciale eilanden

  3. MAX() vs GREATEST() in MySQL:wat is het verschil?

  4. Hoe threadveilig is EnableWriteAheadLogging in de context van echt gebruik en SQLite-documentatie?