sql >> Databasteknik >  >> RDS >> PostgreSQL

tuple uppdateras samtidigt när funktioner skapas i postgresql / PL/pgSQL

Som beskrivs här , postgres tillåter för närvarande inte att du använder CREATE FUNCTION samtidigt:

En lösning på detta är att se till att inga två transaktioner försöker göra CREATE FUNCTION samtidigt.

Du kan använda posgres rådgivningslås för det.

En bra introduktion till rådgivande lås hittar du här:https://vladmihalcea .com/how-do-postgresql-advisory-locks-work/

Du kan till exempel använda:

BEGIN; -- start of transaction

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

CREATE OR REPLACE FUNCTION myfunction ...

COMMIT;

Detta kräver ett exklusivt rådgivande lås på transaktionsnivå, så att inga två samtidiga transaktioner kan köras skapa funktionen samtidigt. I slutet av transaktionen frigörs låset automatiskt.




  1. Nätverksadaptern kunde inte upprätta anslutningen - Oracle 11g

  2. Hur man läser flera resultatuppsättningar som returneras från en SQL Server-lagrad procedur i R

  3. Transparent datakryptering och alltid krypterad

  4. Regelbunden, upprepad interaktion mellan ett orakel och ett smart kontrakt