Search Postgresql Archives

Re: EXECUTE in trigger functions.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Brain wrote:
> Is there a way of using EXECUTE in trigger functions to to do something
> like:
> 
> CREATE OR REPLACE FUNCTION insert_trigger()
>   RETURNS trigger AS
> $BODY$
> BEGIN
>     EXECUTE('INSERT INTO public_partitions.table_'
>     || date_part('year',NEW.eventdate)::VarChar
>     || lpad(date_part('month',NEW.eventdate)::Varchar,2,'0')
>     || lpad(date_part('day',NEW.eventdate)::Varchar,2,'0')
>     || ' VALUES (NEW.*)');
>     RETURN NULL;
> END;
> $BODY$
>   LANGUAGE 'plpgsql'
> 
> This would obviously be very useful for partitioning - however if I try
> this I get:

Execute does execute a given string of SQL. To my knowledge there is no
way you can pass new.* to that statement. What should work is to use
prepare and bind all fields of new.* separately.

http://www.postgresql.org/docs/current/static/sql-prepare.html


-- 
Best regards,
Hannes Dorbath

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux