sql >> Database teknologi >  >> RDS >> PostgreSQL

tuple opdateres samtidigt ved oprettelse af funktioner i postgresql / PL/pgSQL

Som beskrevet her , tillader postgres dig ikke i øjeblikket at bruge CREATE FUNCTION samtidig:

En løsning på dette er at sikre, at ikke to transaktioner forsøger at udføre CREATE FUNCTION på samme tid.

Du kan bruge posgres rådgivende låse for det.

En god introduktion til rådgivende låse kan findes her:https://vladmihalcea .com/how-do-postgresql-advisory-locks-work/

Du kan f.eks. bruge:

BEGIN; -- start of transaction

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

CREATE OR REPLACE FUNCTION myfunction ...

COMMIT;

Dette kræver en eksklusiv rådgivningslås på transaktionsniveau, så der ikke kan køres to samtidige transaktioner, og opret funktionen på samme tid. Ved slutningen af ​​transaktionen frigives låsen automatisk.




  1. PHP PDO og MySQLi

  2. mysql_insert_id med opdatering

  3. Introduktion til diagramtyper

  4. Holder PostgreSQL sine pl*-tolke indlæst vedvarende?