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

Ekskluzywna blokada stołu (odczytu) na Oracle 10g?

Jeśli chcesz tylko uniemożliwić innym sesjom modyfikowanie danych, które możesz wydać

LOCK TABLE whatever
/

To blokuje innym sesjom aktualizację danych, ale nie możemy zablokować innym osobom ich odczytu.

Należy zauważyć, że w Oracle takie blokowanie tabel jest rzadko wymagane, ponieważ Oracle stosuje politykę spójności odczytu. Co oznacza, że ​​jeśli uruchomimy zapytanie, którego uruchomienie zajmuje piętnaście minut, ostatni zwrócony wiersz będzie zgodny z pierwszym wierszem; innymi słowy, gdyby zestaw wyników został posortowany w odwrotnej kolejności, nadal zobaczylibyśmy dokładnie te same wiersze.

edytuj

Jeśli chcesz zaimplementować kolejkę (bez faktycznego korzystania z wbudowana funkcja zaawansowanego kolejkowania ) następnie SELECT ... FOR UPDATE jest droga do zrobienia. Ta konstrukcja pozwala jednej sesji wybrać i zablokować jeden lub więcej wierszy. Inne sesje mogą aktualizować odblokowane wiersze. Jednak wdrożenie prawdziwej kolejki jest dość kłopotliwe, chyba że używasz 11g. Tylko w najnowszej wersji Oracle obsługuje SKIP LOCKED klauzula. Dowiedz się więcej .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zastąp lub usuń wiele wierszy tekstu w procedurze składowanej Oracle

  2. Jak ustawić limit czasu połączenia Oracle db w aplikacji Spring Boot?

  3. Zwróć krótką nazwę miesiąca z daty w Oracle

  4. Jak przechowywać tylko czas; nie data i godzina?

  5. Jak naprawić błąd „Brak mapowania dialektu dla typu JDBC:-1” w javie?