Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment gérer les insertions simultanées dans la base de données entraînant la violation d'une règle pour les enregistrements de la base de données ?

Le problème que vous décrivez s'appelle Write Skew.

En principe, l'isolation des transactions SERIALIZEABLE s'en charge, mais pas dans la base de données Oracle . Oracle ne fournit qu'une isolation d'instantané, même lorsque vous demandez SERIALIZABLE.

Dans Oracle, la seule solution fiable consiste à utiliser une sorte de verrouillage. Cela ne doit pas nécessairement être un verrou sur une ligne de table, vous pouvez également utiliser des verrous consultatifs via DBMS_LOCK pour cela.