Richard Huxton wrote:
George Woodring wrote:
Is possible to declare a variable to build the column name
Tableid varchar(20) := TG_RELNAME || ''id'';
And then use this variable to get the PK value?
Tableidvalue int4 := NEW.tableid;
No. You can build a dynamic query via EXECUTE, but that can't access NEW/OLD.
If there's only the two possibilities, you could just use something like IF TG_RELNAME = 'table1' THEN id := NEW.table1id; ELSE id := NEW.table2id; END IF;
But dynamically referring to NEW.variable doesn't work in plpgsql. Apparently you can do this in some of the other pl languages though (plperl for example).
-Mark.
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend
