Não, não importa. Mesmo se
SELECT 1 FROM table WHERE ... FOR UPDATE
for usado, a consulta bloqueará todas as linhas que atendem às condições where.Se a consulta recuperar linhas de uma junção e não quisermos bloquear linhas de todas as tabelas envolvidas na junção, mas apenas linhas de tabelas específicas, um
SELECT ... FOR UPDATE OF list-of-tablenames
sintaxe pode ser útil:http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE
Em Pl/PgSql use um
PERFORM
comando para descartar o resultado da consulta:http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT
Em vez de:
SELECT 1 INTO dummy FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;
usar:
PERFORM 1 FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;