Я не думаю, что вам вообще нужно условие Если в grup
нет ничего, что соответствует NEW.gruop_id = group_id
, тогда как ОБНОВЛЕНИЕ просто ничего не будет делать, поэтому нет необходимости в двух запросах:
CREATE OR REPLACE FUNCTION record_deleted_item() RETURNS TRIGGER AS $$
BEGIN
UPDATE gruop SET number_itens = (number_itens - 1) WHERE gruop_id = NEW.gruop_id;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Выше предполагается, что grup
это просто опечатка, и у вас есть только gruop
таблица.
Кроме того, если это действительно триггер DELETE, вам нужно работать с OLD
вместо NEW
:
CREATE OR REPLACE FUNCTION record_deleted_item() RETURNS TRIGGER AS $$
BEGIN
UPDATE gruop SET number_itens = (number_itens - 1) WHERE gruop_id = OLD.gruop_id;
RETURN OLD;
END;
$$ LANGUAGE plpgsql;