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

PostgreSQL:Проверка за НОВО и СТАРО във функция за тригер

Обичайният подход да накарате тригерна функция да прави различни неща в зависимост от това как е задействан тригерът е да проверите тригерната операция чрез TG_OP

CREATE OR REPLACE FUNCTION update_table_count()
RETURNS trigger AS
$$
DECLARE 
  updatecount INT;
BEGIN
  if tg_op = 'UPDATE' then 
    select count(*) into updatecount from source_table where id = new.id;
    update dest_table set count=updatecount where id = new.id;
  elsif tg_op = 'DELETE' then 
    ... do something else
  end if;
  RETURN NEW;
END;
$$
LANGUAGE plpgsql;

Не е свързано, но:името на езика е идентификатор. Не го цитирайте с единични кавички.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TypeORM условно nullable?

  2. Как да върна стойност от функция, ако не е намерена стойност

  3. Как да разделя масива на редове в Postgresql

  4. Прекратяване на спряна заявка (неактивна в транзакция)

  5. Производителност на OLTP след PostgreSQL 8.3