sql >> Database >  >> RDS >> Oracle

Hoe kan ik een enkele rij vergrendelen in Oracle SQL?

U kunt het record vergrendelen zoals beschreven in andere antwoorden, maar u zult geen uitzondering zien terwijl u deze rij BIJWERKT.

De UPDATE verklaring zal wachten tot het slot wordt vrijgegeven , d.w.z. de sessie met SELECT ... FOR UPDATE begaat. Daarna wordt de UPDATE uitgevoerd.

De enige uitzondering die u kunt beheren is DEADLOCK, d.w.z.

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


  1. mysql wordt niet herkend als een interne of externe opdracht, bruikbaar programma of batch

  2. MySQL-syntaxisfout:in de buurt van '1' op regel 1

  3. Mysql join-query op drie tabellen met meerdere kolommen

  4. Hoe en wanneer SLEEP() correct gebruiken in MySQL?