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

Stav spouštění ve všech řádcích

Spouštěč, který vydává DML (včetně SELECT) proti stejné tabulce, která vlastní spouštěč, vyvolává přízrak ORA-4091, výjimku mutující tabulky. Oracle tuto chybu vyhodí, protože očekává, že výsledek transakce bude deterministický, a spouštěč, který vydá DML na jeho vlastním stole, vnáší do řízení nejistotu.

Mutující tabulka je spolehlivým indikátorem špatného návrhu, konkrétně špatného datového modelu a zdá se, že tomu tak je i v tomto případě.

Pokud je hodnota pokuty závislá na výsledku jednoho pozorování, pak je v pořádku, aby FINE byla sloupcem v tabulce OBSERVACION. Vaše obchodní pravidla však naznačují, že hodnota může záviset na několika pozorováních, pokud spadají do určitého období. V tomto scénáři by měla být pokuta ve vlastní tabulce. Budete potřebovat cizí klíč mezi OBSERVACION a MULTA, abyste uvedli, na která pozorování se vztahuje konkrétní pokuta.




  1. fe_sendauth:po nastavení databáze PostgreSQL na Cloud9 IDE nedošlo k chybě zadaného hesla

  2. SQL*Plus CSV Export je pomalejší než SQL Developer

  3. chyba:'Neplatné číslo parametru:parametr nebyl definován' při použití pole pro INSERT v PDO

  4. Sphinx Search mysql klient na produkčním serveru