процедуру. Причем аргумент, который мог быть вызван при UPDATE, DELETE, INSERT отслеживаемой таблицы?
Условно есть 2 таблицы
categories
+----+--------+----------+
| id | name | quantity |
+----+--------+----------+
| 1 | овощи | 0 |
| 2 | фрукты | 0 |
+----+--------+----------+
products
+----+---------+------------+
| id | name | categoryId |
+----+---------+------------+
| 1 | яблоко | 2 |
| 2 | банан | 2 |
| 3 | помидор | 1 |
+----+---------+------------+
Я хочу при изменении таблицы products обновлять данные в categories. А именно менять quantity.
Для этого я завожу триггер
CREATE TRIGGER products_trigger
AFTER event INSERT OR
UPDATE OF categoryId OR
DELETE
ON products
FOR EACH ROW
EXECUTE PROCEDURE update_categories()
И Функцию
CREATE FUNCTION update_categories(categoryId)
LANGUAGE sql
AS 'UPDATE categories SET quantity = (SELECT quantity FROM categories WHERE id = categoryId)'
И вот я хочу в функцию передать id категории из таблицы, за который следит триггер. Как я могу это сделать?
update_categories(NEW.category_id), емнип https://www.postgresql.org/docs/12/plpgsql-trigger.html
Обсуждают сегодня