PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Izolacja transakcji PostgreSQL PRZECZYTAJ NIEZAKOŃCZONY

PostgreSQL nie obsługuje brudnych odczytów (READ UNCOMMITTED ). Jak zauważył @a_horse_with_no_name, podręcznik mówi:

Jest to zgodne z zasadą w standardzie, że baza danych musi traktować nieobsługiwane poziomy izolacji jako najsilniejszy obsługiwany poziom.

Nie ma obsługiwanego sposobu odczytywania niezatwierdzonych krotek z trwającej transakcji w PostgreSQL. Gdyby tak było, byłbyś w stanie uzyskać takie rzeczy jak zduplikowane wartości dla kluczy podstawowych i ogólny chaos, więc i tak nie byłoby to zbyt przydatne.

kilka sposobów, w jakie transakcje w toku mogą się komunikować i wpływać na siebie nawzajem:

  • Za pośrednictwem udostępnionej aplikacji klienckiej (oczywiście)
  • SEQUENCE (i SERIAL ) aktualizacje następują natychmiast, nie w czasie zatwierdzania
  • blokada doradcza
  • Normalne blokowanie wierszy i tabel, ale zgodnie z zasadami READ COMMITTED widoczność
  • UNIQUE i EXCLUSION ograniczenia

Możliwe jest zobaczenie niezatwierdzonych danych krotek przy użyciu narzędzi debugowania tylko dla superużytkowników, takich jak inspekcja strony , ale tylko wtedy, gdy naprawdę rozumiesz wnętrze Datastore. Nadaje się tylko do odzyskiwania danych i debugowania. Zobaczysz wiele wersji danych na ścianie danych szesnastkowych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać RETURNING z ON CONFLICT w PostgreSQL?

  2. SQL:Grupuj podobne wartości z kolumny B, ale uporządkuj według kolumny A

  3. Równoległe unnest() i porządek sortowania w PostgreSQL

  4. Problem z kontenerami docker postgresql i pgadmin

  5. Jak wstrzymać wykonywanie instrukcji w PostgreSQL