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;