Non, ce n'est pas grave. Même si SELECT 1 FROM table WHERE ... FOR UPDATE
est utilisé, la requête verrouille toutes les lignes qui remplissent les conditions where.
Si la requête récupère les lignes d'une jointure et que nous ne voulons pas verrouiller les lignes de toutes les tables impliquées dans la jointure, mais uniquement les lignes à partir de tables spécifiques, un SELECT ... FOR UPDATE OF list-of-tablenames
la syntaxe peut être utile :
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE
En Pl/PgSql, utilisez un PERFORM
commande pour supprimer le résultat de la requête :
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT
Au lieu de :
SELECT 1 INTO dummy FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;
utiliser :
PERFORM 1 FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;