Hello,
I'm writing a trigger in pl/pgSQL and I'd like to pass one column name as argument to the trigger function.
Provided my table has only one column named 'id', I can do easilly
CREATE FUNCTION ft() RETURNS trigger AS $$
BEGIN
RAISE NOTICE 'It works:%', OLD.id;
END
$$ LANGUAGE plpgsql;
But I'd like to do
CREATE FUNCTION ft() RETURNS trigger AS $$
DECLARE
col VARCHAR;
BEGIN
col = TG_ARGV[0]
RAISE NOTICE 'This does not works:%', OLD.col
RAISE NOTICE 'This also does not works:%', OLD[col]
END
$$ LANGUAGE plpgsql;
I tried OLD.(col) and other tricks, like "SELECT INTO" or "EXECUTE", and I checked the docs.