Hi all,
In the past, when writing trigger functions, I’ve always used pl/pgsql without giving it a second thought. Today I was
modifyinga database creation script that was originally intended for Firebird to work with Postgres and the example
triggerprocedures in there were very close to pure SQL.
Hence, I started rewriting them as SQL functions, but is that really possible? The return-type for trigger functions is
usually‘returns trigger’, which I don’t know how to translate to SQL. Next to that, what should the SQL statement
insidethe function be returning?
This got a bit puzzling and now I wonder whether this is possible at all? And if so, what’s the correct syntax?
Say I have the below, how to actually return a value of type trigger?:
create or replace function pUpdateFoo()
returns trigger
as $$
update Bar
set baz = baz + NEW.feep - OLD.feep
where foo = NEW.foo;
$$;
create trigger tUpdateFoo
after update on Foo
for each row
execute procedure pUpdateFoo();
Glad to finally have a proper opportunity to apply PG again - it’s been too long!
Alban Hertroys
--
If you can't see the forest for the trees,
cut the trees and you'll find there is no forest.