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

Re: Tablas Temporales

From: "Javier Aquino H(dot)" <JAquino(at)LexusEditores(dot)com>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Tablas Temporales
Date: 2006-03-31 20:15:08
Message-ID: 014601c654ff$cf13c1d0$0a010a0a@javier (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
>
> ----- Original Message ----- 
> From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
>
>> On 3/30/06, Javier Aquino H. <JAquino(at)lexuseditores(dot)com> wrote:
>>>
>>> No es buena práctica estar creando tablas temporales al momento de la
>>> ejecución de funciones, menos aún si siempre se crea la tabla con la 
>>> misma
>>> estructura y es creada y dropeada cada vez que se llama a la función.
>>>
>>> Lo que se hace en estos casos es crear la tabla temporal como parte de 
>>> tu
>>> modelo con la siguiente sintaxis:
>>>
>>> CREATE TEMPORARY TABLE nombre_de_la_tabla (
>>> .......
>>> ......
>>> .....
>>> ) ON COMMIT DELETE ROWS ;
>>>
>>> De esta forma en la función solo llenas la tabla para lo que creas
>>> conveniente y al momento de hacer COMMIT la tabla queda vacía
>>> automáticamente. No debes preocuparte por la concurrencia de usuarios, 
>>> ya
>>> que siguiendo la lógica de las transacciones la data no estará 
>>> disponible
>>> para ningún otro usuario que esté conectado, vale decir que cualquier 
>>> otro
>>> usuario que use la tabla siempre la va a encontrar vacía un que otros
>>> usuarios estén trabajando en ella.
>>>
>>> Saludos y suerte en tu proyecto,
>>>
>>> Javier.
>>>
>>>
>>
>> pero la tabla desaparecera al termino de la sesion, cual es la
>> diferencia con crearla en la funcion? bueno, solo que llames a la
>> funcion varias veces durante la misma sesion, caso contrario es lo
>> mismo...
>>
>> respecto a lo de EXECUTE
>>
>> EXECUTE 'create temp table tabla_temporal ( ...campos... )';
>>
>> --
>> Atentamente,
>> Jaime Casanova
>>

Efectivamente .... la tabla se elimina al final de la sesión, lo cual quiere
decir que puede usar la tabla temporal N veces o mejor dicho en N
transacciones y cada vez que se logre un COMMIT se limpia la tabla. Con esto
se gana eficiencia y rapidéz, ya que no se crea y elimina la tabla en cada
transacción sino en cada sesión dentro del cual pueden haber n
transacciones. Además que evitamos el problema inicial ... "ERROR:  relation
with OID 905812 does not "

Slds.

Javier.



pgsql-es-ayuda by date

Next:From: deepthroatDate: 2006-03-31 20:18:21
Subject: restaurar vista
Previous:From: Juan Carlos Badillo GoyDate: 2006-03-31 20:03:42
Subject: Necesito ayuda con la ejecución de ficheros desde postg?==?iso-8859-1?Q?res

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