Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso bloquear uma única linha no Oracle SQL


Você pode bloquear o registro conforme descrito em outras respostas, mas não verá nenhuma exceção enquanto atualiza esta linha.

A UPDATE declaração irá aguardar até que o bloqueio seja liberado , ou seja, a sessão com SELECT ... FOR UPDATE se compromete. Depois disso, o UPDATE será realizado.

A única exceção que você pode gerenciar é DEADLOCK, ou seja,
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