Jak jste si všimli, bude obtížné odpovědět na vaše obchodní požadavky pomocí spouštěčů. Důvodem je, že Oracle může aktualizovat/vložit tabulky s více než jedním vláknem současně pro jeden dotaz (paralelní DML). To znamená, že vaše relace se nemůže dotazovat na tabulku, kterou aktualizuje během aktualizace .
Pokud to opravdu chcete udělat pomocí spouštěčů, budete muset postupovat podle názvu druh logiky zobrazený v tomto článku od Toma Kyte . Jak vidíte, není to nic jednoduchého.
Existuje ještě jedna, jednodušší, elegantnější, snadněji udržovatelná metoda:používat postupy. Zrušte právo na aktualizaci/vložení uživateli (uživatelům) aplikace a napište sadu procedur, které aplikaci umožní aktualizovat sloupce stavu.
Tyto postupy by uzamkly nadřazený řádek (aby se zabránilo více relacím upravujícím stejnou sadu řádků) a aplikovaly by vaši obchodní logiku účinným, čitelným a snadno udržovatelným způsobem.