sql >> Databáze >  >> RDS >> PostgreSQL

Postgres SELECT ... PRO AKTUALIZACI ve funkcích

Ne, to je jedno. I když SELECT 1 FROM table WHERE ... FOR UPDATE Pokud se použije, dotaz uzamkne všechny řádky, které splňují podmínky where.

Pokud dotaz načte řádky ze spojení a my nechceme zamknout řádky ze všech tabulek zapojených do spojení, ale pouze řádky z konkrétních tabulek SELECT ... FOR UPDATE OF list-of-tablenames syntaxe může být užitečná:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE


V Pl/PgSql použijte PERFORM příkaz pro zrušení výsledku dotazu:
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT

Místo:

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

použití:

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



  1. SQL volání Max číslo řádku z dočasné tabulky

  2. MySQL seskupuje podle data a převádí z unixového časového razítka

  3. Schrödingersova tabulka MySQL:existuje, ale neexistuje

  4. Jak echo out řádky tabulky z db (php)