Inserting NEW.* from a generic trigger using EXECUTE in PL/pgsql

后端 未结 3 1910
醉酒成梦
醉酒成梦 2020-12-17 14:40

I have a number of tables that use the Postgres \"Partitioning\" feature. I want to define a common BEFORE INSERT OF ROW trigger on each table that will 1) dynamically crea

3条回答
  •  孤城傲影
    2020-12-17 15:33

    Yes, you can use EXECUTE ... USING in 8.4. For example:

    EXECUTE 'INSERT INTO ' || table_name || ' SELECT $1.*' USING NEW;

    In lower versions (I've only tested in 8.3), you can use:

    EXECUTE 'INSERT INTO ' || table_name ||
        ' SELECT (' || quote_literal(NEW) || '::' || TG_RELID::regclass || ').*';
    

提交回复
热议问题