Postgresql функция триггера, которая проверяет, совпадают ли данные, которые были обновлены в одном столбце, чему-то - PullRequest
0 голосов
/ 01 августа 2020

У меня одна таблица A с 3 столбцами id, name, price. Я пытаюсь создать триггер в postgres, который срабатывает, когда значение в price обновляется / устанавливается на 0. Если значение равно 0, то вся строка удаляется.

Я полный новичок в postgresql, но мне это отчаянно нужно для моего проекта node.js. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 01 августа 2020

Это довольно просто.

Первый шаг - создать лог c триггера. В этом примере удаляется строка из a, если price = 0. id = NEW.id ограничивает это удаление только что измененной строкой.

create or replace function zero_price_delete() 
returns trigger language plpgsql 
as $$
begin
  delete from a where price = 0 and id = NEW.id; 
  return new;
end; $$;

Затем назначьте это как after триггер для A после операций insert или update.

create trigger zero_delete 
 after update or insert on a 
 for each row 
 execute procedure zero_price_delete();

...