Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie gehe ich mit gleichzeitigen Einfügungen in die DB um, die eine Regelverletzung für die Datensätze in der Datenbank verursachen?

Das Problem, das Sie beschreiben, heißt Write Skew.

Dafür sorgt im Prinzip die Transaktionsisolation SERIALIZEABLE, aber nicht in Oracle DB . Oracle bietet nur Snapshot-Isolation, selbst wenn Sie nach SERIALIZABLE fragen.

In Oracle besteht die einzige zuverlässige Lösung darin, eine Art Sperre zu verwenden. Dies muss nicht unbedingt eine Sperre auf eine Tabellenzeile sein, dafür können Sie auch Advisory-Sperren über DBMS_LOCK verwenden.