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

Postgres VÆLG ... FOR OPDATERING i funktioner

Nej, det er lige meget. Selv hvis SELECT 1 FROM table WHERE ... FOR UPDATE bruges, låser forespørgslen alle rækker, der opfylder hvor betingelser.

Hvis forespørgslen henter rækker fra en joinforbindelse, og vi ikke ønsker at låse rækker fra alle tabeller involveret i joinforbindelsen, men kun rækker fra specifikke tabeller, en SELECT ... FOR UPDATE OF list-of-tablenames syntaks kan være nyttig:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-DEL


Brug en PERFORM i Pl/PgSql kommando for at kassere forespørgselsresultatet:
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT

I stedet for:

SELECT 1 INTO dummy FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;

brug:

PERFORM 1 FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;



  1. Strapi + Cloud SQL til MySQL på Google App Engine - Serveren kunne ikke starte korrekt Fejl:getaddriinfo EAI_AGAIN

  2. Import af en JSON-fil til Postgresql 11 på Windows 10

  3. Sådan deaktiveres alle tjekbegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 87

  4. MySQL test privilegier