On Tue, Jan 19, 2016 at 5:05 PM, Peter Devoy <peter@3xe.co.uk> wrote:
As part of the extension I am writing I am trying to create a trigger procedure in which the value of the primary key of the NEW or OLD row is used. The trigger will be fired by arbitrary tables so the column name must be dynamic. Something like:
pk_column := 'foo_id'; --example assignment only
EXECUTE 'INSERT INTO bar (baz) VALUES ($1)' USING NEW.quote_literal(pk_column);
Out of desperation I have pretty much brute forced many weird combinations of quote_literal, quote_ident, ::regclass, || and USING. Unfortunately, I have not been able to get anything to work so any help would be very much appreciated.
Thanks for reading
...
-- Dump into proper partition sql := 'INSERT INTO ' || v_ets_destination || ' VALUES ( ($1).*)';
-- DEBUG --RAISE NOTICE 'SQL: %',sql;
BEGIN EXECUTE sql USING NEW; ...
-- Scott Mead Sr. Architect OpenSCG PostgreSQL, Java & Linux Experts