From: Richard Huxton <dev@archonet.com>
To: Tiziano Slack <slack83@hotmail.it>
Cc: pgsql-sql@postgresql.org
Subject: Re: TG_TABLE_NAME as identifier
Date: Thu, 07 Feb 2008 07:52:22 +0000
Message-ID: <47AAB8B6.70807@archonet.com> (raw)
In-Reply-To: <BAY109-W22937ED37F3081CAEC9F26CE2E0@phx.gbl>
References: <BAY109-W22937ED37F3081CAEC9F26CE2E0@phx.gbl>
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: dev@archonet.com, slack83@hotmail.it
Subject: Re: TG_TABLE_NAME as identifier
In-Reply-To: <47AAB8B6.70807@archonet.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox