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

Udløsertilstand i alle rækker

En trigger, der udsteder DML (inklusive SELECT) mod den samme tabel, som ejer triggeren, rejser spøgelset for ORA-4091, den muterende tabel-undtagelse. Oracle kaster denne fejl, fordi det forventer, at resultatet af en transaktion er deterministisk, og en udløser, som udsteder DML på sit eget bord, introducerer usikkerhed i proceduren.

Mutationstabel er en pålidelig indikator for dårligt design, specifikt en dårlig datamodel, og det ser ud til at være tilfældet her.

Hvis værdien af ​​en bøde er afhængig af resultatet af en enkelt observation, er det i orden, at BØDE er en kolonne på OBSERVACION-tabellen. Dine forretningsregler indikerer dog, at værdien kan afhænge af flere observationer, hvis de falder inden for en vis periode. I dette scenarie bør bøden være i en egen tabel. Du skal bruge en fremmednøgle mellem OBSERVACION og MULTA for at angive, hvilke observationer der er omfattet af en bestemt bøde.




  1. Er der et trick til at tillade MySQL at ignorere et efterfølgende komma i SET-sætningen i en UPDATE-sætning?

  2. Indekseringskolonne med REPLACE-funktion i mySQL

  3. få adgang til et kolonnealias i where-sætningen i postgresql

  4. Opdateringer fra Microsoft Access-teamet (juni 2017)