Zwykłym podejściem, aby funkcja wyzwalacza robiła różne rzeczy w zależności od tego, jak wyzwalacz został uruchomiony, jest sprawdzenie działania wyzwalacza za pomocą 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;
Niezwiązane, ale:nazwa języka jest identyfikatorem. Nie cytuj go za pomocą pojedynczych cudzysłowów.