En trigger som utfärdar DML (inklusive SELECT) mot samma tabell som äger triggern väcker spöket för ORA-4091, undantaget för muterande tabell. Oracle ger det här felet eftersom det förväntar sig att resultatet av en transaktion är deterministiskt, och en trigger som utfärdar DML på sitt eget bord skapar osäkerhet i förfarandet.
Mutationstabell är en pålitlig indikator på dålig design, speciellt en dålig datamodell och det verkar vara fallet här.
Om värdet av en böter är beroende av resultatet av en enskild observation är det okej att BÖT är en kolumn i OBSERVATION-tabellen. Dina affärsregler indikerar dock att värdet kan bero på flera observationer, om de faller inom en viss period. I detta scenario bör böterna vara i en egen tabell. Du skulle behöva en främmande nyckel mellan OBSERVACION och MULTA för att indikera vilka observationer som omfattas av en viss böter.