Re: TG_TABLE_NAME as identifier

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

In response to

Browse pgsql-sql by date

  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