sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL získá a uvolní LOCK uvnitř uložené funkce

V Postgres 11 nebo později zvažte PROCEDURE který umožňuje kontrolu transakcí. Viz:

S funkcemi , žádný způsob neexistuje . Funkce v Postgresu jsou atomické (vždy uvnitř transakce) a zámky se uvolní na konci transakce.

Možná byste to mohli vyřešit pomocí rady zámky . Ale to není totéž. Všechny konkurenční transakce musí hrát spolu. Současný přístup, který nezná poradní zámky, zkazí párty.

Příklad kódu na dba.SE:

Nebo se můžete dostat někam s „podváděním“ autonomních transakcí s dblink:

Nebo znovu posoudíte svůj problém a rozdělíte jej do několika samostatných transakcí.



  1. Nejnovější datum a čas z jedinečného indexu mysql

  2. Chyba jdbc to MYSQL:Nebyl nalezen žádný vhodný ovladač pro jdbc:mysql://localhost:3306/test?user='root'&password=''

  3. 4 funkce pro získání hodiny z časové hodnoty v MariaDB

  4. Nejlepší nástroje pro zálohování pro PostgreSQL