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

Come gestire gli inserimenti simultanei nel DB causando la violazione di una regola per i record nel database?

Il problema che stai descrivendo si chiama Write Skew.

In linea di principio, l'isolamento delle transazioni SERIALIZEABLE si occupa di questo, ma non in Oracle DB . Oracle fornisce solo l'isolamento degli snapshot, anche quando richiedi SERIALIZABLE.

In Oracle, praticamente l'unica soluzione affidabile è utilizzare una sorta di blocco. Questo non deve necessariamente essere un blocco su una riga della tabella, puoi anche utilizzare i blocchi di avviso tramite DBMS_LOCK per questo.