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.

Reply via email to