PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgres ИЗБЕРЕТЕ ... ЗА АКТУАЛИЗИРАНЕ във функции

Не, няма значение. Дори ако SELECT 1 FROM table WHERE ... FOR UPDATE се използва, заявката заключва всички редове, които отговарят на условията where.

Ако заявката извлича редове от съединение и ние не искаме да заключваме редове от всички таблици, включени в съединението, а само редове от конкретни таблици, SELECT ... FOR UPDATE OF list-of-tablenames синтаксисът може да бъде полезен:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE


В Pl/PgSql използвайте PERFORM команда за отхвърляне на резултата от заявката:
http://www.postgresql.org/docs/9.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT

Вместо:

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

използвайте:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL на корпоративния възел на Corda хвърля грешки в релацията

  2. IntegrityError при запазване на нов елемент в postgresql db в django?

  3. Postgres INTERVAL използва стойност от таблицата

  4. Настройка на производителността на Rails за производство?

  5. Бавно подреждане на заявките по колона в обединена таблица