Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak mogę zablokować pojedynczy wiersz w Oracle SQL?

Możesz zablokować rekord, jak opisano w innych odpowiedziach, ale nie zobaczysz żadnego wyjątku podczas aktualizacji tego wiersza.

UPDATE oświadczenie będzie poczekać, aż blokada zostanie zwolniona , czyli sesja z SELECT ... FOR UPDATE zobowiązuje. Następnie zostanie wykonana UPDATE.

Jedynym wyjątkiem, którym możesz zarządzać, jest DEADLOCK, tj.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz max(data) nie działa, jeśli wiersze mają różne wartości, chcę tylko pobrać wiersz z najwyższą datą

  2. Oracle — wyzwalacze do tworzenia wiersza historii podczas aktualizacji

  3. pytanie dotyczące zapisanego tekstu programu pl/sql

  4. Oracle MIN jako funkcja analityczna — dziwne zachowanie z ORDER BY?

  5. Konfigurowanie środowiska programistycznego do nauki języka PL/SQL