| 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: | Whole Thread | Raw Message | 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 |