Skip site navigation (1) Skip section navigation (2)

Re: insert en Function

From: Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: insert en Function
Date: 2006-04-26 19:10:36
Message-ID: 26fd01c66965$19d2da20$ea84a8c0@Nico (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hice una solucion provisoria y poco optima, pero funciona.

    CREATE TEMP TABLE auditoria_temp AS (SELECT OLD.*);
    EXECUTE 'INSERT INTO esquema.' ||Tabla|| ' SELECT * FROM 
auditoria_temp';
    DROP TABLE auditoria_temp;

Voy a ver de probar mañana lo que me dice Alvaro.

Muchas gracias

Nicolas.

----- Original Message ----- 
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Nicolás Domínguez Florit" <ndomin(at)rec(dot)unicen(dot)edu(dot)ar>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Wednesday, April 26, 2006 4:00 PM
Subject: Re: [pgsql-es-ayuda] insert en Function


> Nicolás Domínguez Florit escribió:
>> desde dentro de la funcion cambie:
>>
>> INSERT INTO "Tabla" SELECT OLD.*;
>>
>> por
>>
>> temporal:='INSERT INTO esquema.' || Tabla || 'SELECT OLD.*;';
>> EXECUTE temporal;
>>
>> y tengo el problema de que no me reconoce OLD y me tira:
>> ERROR:  syntax error at or near "OLD" at character 40
>>
>> Se te (les) ocurre como lo puedo acomodar?
>
> No se.  Trata de hacer que el OLD.* se expanda en la funcion; obviamente
> no funciona en el EXECUTE.
>
> temporal:='INSERT INTO esquema.' || Tabla || 'SELECT ' || OLD.* ;
>
> pero en realidad yo no esperaria que eso funcionara limpiamente.  Quizas
>
> temporal:='INSERT INTO esquema.' || Tabla || 'SELECT ' || OLD || '.*' ;
>
> En todo caso activa log_statement y mira en el log la sentencia que se
> esta ejecutando.  Cualquier cosa que no te acepte el parser directamente
> en psql no funcionara con EXECUTE.
>
> -- 
> Alvaro Herrera 
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.385 / Virus Database: 268.4.6/324 - Release Date: 25/04/2006
>
> 


In response to

pgsql-es-ayuda by date

Next:From: Juan MartínezDate: 2006-04-26 19:13:57
Subject: Re: Sobre uso de pg_update
Previous:From: Alvaro HerreraDate: 2006-04-26 19:00:54
Subject: Re: insert en Function

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group