sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres VÄLJ ... FÖR UPPDATERING i funktioner

Nej, det spelar ingen roll. Även om SELECT 1 FROM table WHERE ... FOR UPDATE används låser frågan alla rader som uppfyller där villkor.

Om frågan hämtar rader från en join, och vi inte vill låsa rader från alla tabeller som är involverade i joinningen, utan endast rader från specifika tabeller, en SELECT ... FOR UPDATE OF list-of-tablenames syntax kan vara användbar:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE


I Pl/PgSql använd en PERFORM kommando för att ignorera frågeresultat:
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT

Istället för:

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

använd:

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



  1. standard en kolumn med tom sträng

  2. kunde inte hitta drivrutinsfel vid användning av PDO med MSSQL-server

  3. Infoga flera objekt i ett ID MySQL från kryssrutan input PHP-formulär

  4. Ta bort Oracle Data Provider för .NET från Global Assembly Cache