Som du har märkt kommer det att vara svårt att svara på dina affärskrav med triggers. Anledningen är att Oracle kan uppdatera/infoga tabellerna med mer än en tråd samtidigt för en enda fråga (parallell DML). Detta innebär att din session inte kan fråga tabellen som den uppdaterar medan uppdateringen äger rum .
Om du verkligen vill göra detta med triggers måste du följa typ av logik som visas i den här artikeln av Tom Kyte . Som du kan se är det inte något enkelt.
Det finns en annan, enklare, mer elegant, lättare att underhålla metod:använd procedurer. Återkalla rätten att uppdatera/infoga till användaren/användarna av applikationen och skriv en uppsättning procedurer som tillåter applikationen att uppdatera statuskolumnerna.
Dessa procedurer skulle hålla ett lås på den överordnade raden (för att förhindra flera sessioner för att ändra samma uppsättning rader) och skulle tillämpa din affärslogik på ett effektivt, läsbart och lättskött sätt.