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

Come posso bloccare una singola riga in Oracle SQL

Puoi bloccare il record come descritto in altre risposte, ma non vedrai alcuna eccezione durante l'AGGIORNAMENTO di questa riga.

Il UPDATE dichiarazione attenderà fino al rilascio del blocco , ovvero la sessione con SELECT ... FOR UPDATE si impegna. Dopodiché verrà eseguito l'AGGIORNAMENTO.

L'unica eccezione che puoi gestire è DEADLOCK, ovvero

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