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

n-tice souběžně aktualizována při vytváření funkcí v postgresql / PL/pgSQL

Jak je popsáno zde , postgres vám aktuálně neumožňuje používat CREATE FUNCTION současně:

Řešením je zajistit, aby se žádné dvě transakce nepokusily provést CREATE FUNCTION ve stejnou dobu.

Můžete použít poradní zámky posgres za to.

Dobrý úvod do poradenských zámků naleznete zde:https://vladmihalcea .com/how-do-postgresql-advisory-locks-work/

Můžete například použít:

BEGIN; -- start of transaction

SELECT pg_advisory_xact_lock(2142616474639426746); -- random 64-bit signed ('bigint') lock number

CREATE OR REPLACE FUNCTION myfunction ...

COMMIT;

To vyžaduje výhradní poradní zámek na úrovni transakce, takže nelze spustit žádnou dvě souběžné transakce a vytvořit funkci současně. Na konci transakce se zámek automaticky uvolní.




  1. ukládání souborů mp3 v mysql

  2. postgresql:spusťte příkazy SQL pomocí psql v příkazovém řádku

  3. Jaký je nejlepší postup pro práci s časovým pásmem v MySQL?

  4. Převeďte obsah buňky na hypertextový odkaz v MySQL Datagridview