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

прилагане на АКТУАЛИЗАЦИЯ на SELECT в Postgres

Обърнете внимание на стойността по подразбиране за колоната qry_count:

CREATE TABLE t (
    a INTEGER PRIMARY KEY, 
    b TEXT, 
    entered_by INTEGER, 
    qry_count INTEGER default 0
);

create function select_and_update(parameter text)
returns setof t as $$
    update t
    set qry_count = qry_count + 1
    from (
        select a
        from t
        where b = $1
        ) s
    where t.a = s.a
    ;
    select *
    from t
    where b = $1
    ;
$$ language sql;

Сега направете заявка към таблицата, като използвате горната функция:

select * from select_and_update('a');

Актуализация според коментара:

Можете да го изградите динамично и вместо функция просто да обвиете sql кода, какъвто и да е той, в транзакция. Няма нужда от курсори.

begin;
    update t
    set qry_count = qry_count + 1
    from (
        select a
        from t
        where b = 'a'
        ) s
    where t.a = s.a
    ;
    select *
    from t
    where b = 'a'
    ;
commit;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Интерпретиране на резултати от Explain Analyze в Postgres

  2. Актуализацията между 2 бази данни с помощта на dblink не работи

  3. Правилна настройка на пул за свързване към базата данни database.yml за еднонишкови Rails приложения

  4. Архивиране/възстановяване на докеризирана PostgreSQL база данни

  5. Postgresql localhost връзка - Връзката е отказана