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

PostgreSQL uzyskaj i zwolnij LOCK wewnątrz zapisanej funkcji

W Postgresie 11 lub później, rozważ PROCEDURE co umożliwia kontrolę transakcji. Zobacz:

Z funkcjami , nie ma nie ma mowy . Funkcje w Postgresie są atomowe (zawsze wewnątrz transakcji), a blokady są zwalniane na koniec transakcji.

Możesz obejść ten problem za pomocą doradztwa zamki . Ale to nie to samo. Wszystkie konkurujące transakcje muszą grać razem. Jednoczesny dostęp, który nie jest świadomy blokad doradczych, zepsuje imprezę.

Przykład kodu na dba.SE:

Lub możesz dostać się gdzieś z "oszukującym" autonomicznymi transakcjami za pomocą dblink:

Lub ponownie oceniasz swój problem i dzielisz go na kilka oddzielnych transakcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wartości parametrów tabeli Postgresql JDBC

  2. Policz liczbę dni między 2 datami w JPA

  3. Jak UNION listę tabel pobranych z innej tabeli za pomocą jednego zapytania?

  4. Klucz obcy PostgreSQL nie istnieje, problem dziedziczenia?

  5. Jak uporządkować dane w sqlalchemy według listy