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

Comment puis-je verrouiller une seule ligne dans Oracle SQL

Vous pouvez verrouiller l'enregistrement comme décrit dans d'autres réponses, mais vous ne verrez aucune exception lors de la mise à jour de cette ligne.

La UPDATE l'instruction attendra que le verrou soit libéré , c'est-à-dire la session avec SELECT ... FOR UPDATE engage. Après cela, la MISE À JOUR sera effectuée.

La seule exception que vous pouvez gérer est DEADLOCK, c'est-à-dire

Session1   SELECT FOR UPDATE record A
Session2   SELECT FOR UPDATE record B
Session1   UPDATE record B  --- wait as record locked
Session2   UPDATE record A  --- deadlock as 1 is waiting on 2 and 2 waiting on 1