From: | Richard Huxton <dev(at)archonet(dot)com> |
---|---|
To: | Tiziano Slack <slack83(at)hotmail(dot)it> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: TG_TABLE_NAME as identifier |
Date: | 2008-02-07 07:52:22 |
Message-ID: | 47AAB8B6.70807@archonet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Tiziano Slack wrote:
> Thanks for the precious tips, but unfortunately the syntax:
> EXECUTE 'INSERT INTO '|| TG_TABLE_NAME ||' SELECT '|| NEW.*;is parsed correctly, but when the trigger is fired the following error is returned
>
> ERROR: column "*" not found in data type mytable
> CONTEXT: SQL statement "SELECT 'INSERT INTO '|| $1 ||' SELECT '|| $2 .*"
>
> Using
> EXECUTE 'INSERT INTO '|| TG_TABLE_NAME ||' SELECT NEW.*';
> instead, returns:
>
> ERROR: NEW used in query that is not in a rule
> CONTEXT: SQL statement "INSERT INTO anag_referenti SELECT NEW.*"
>
> Hope someone can show me another way to do that, if exists ;)
You'll have to build the INSERT in full - column by column.
Have you considered plperl / pltcl etc. - that makes it easier to do.
--
Richard Huxton
Archonet Ltd
From | Date | Subject | |
---|---|---|---|
Next Message | John Hasler | 2008-02-07 14:08:31 | Re: accounting schema |
Previous Message | Tiziano Slack | 2008-02-07 07:16:21 | Re: TG_TABLE_NAME as identifier |