RV: Uso de tablas temporarias

From: "Ana Smail" <anasmail(at)unnoba(dot)edu(dot)ar>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RV: Uso de tablas temporarias
Date: 2006-05-12 14:59:44
Message-ID: E1FeZF5-0004iW-EK@homero.unnoba.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Perdón no escribí a la lista.

-----Mensaje original-----
De: Ana Smail [mailto:anasmail(at)unnoba(dot)edu(dot)ar]
Enviado el: Viernes, 12 de Mayo de 2006 11:58 a.m.
Para: 'Alvaro Herrera'
Asunto: RE: [pgsql-es-ayuda] Uso de tablas temporarias

Estuve haciendo algunas pruebas y descubrí algo con respecto a uso de
temporarias.
Use el pgAdmin III y conectada la base corri el siguiente script:
begin TRANSACTION;
CREATE TEMP TABLE prueba( codigo varchar(2)) ON COMMIT PRESERVE ROWS;

INSERT INTO prueba ( codigo ) VALUES ( '21' );
commit;

select * from prueba;

todo bien, las filas no se borran después del COMMIT.

En la base de datos me hizo lo siguiente:
Me creo un schema pg_temp_3 donde agregó la tabla

Ahora si no cierro la conexión con la base en el editor SQL y vuelvo a
establece otra y corro nuevamente el strip, me crea otro schema pg_temp_5 y
así siguiendo.

Probé abrir otra conexión y en el editor sql escribir:
Select * from pg_temp_3.prueba
Esto funciona pero me devuelve la tabla vacía.

Lo que más me extraño que estos schemas creados no se borran siguen
permanentes en la base, me desconecto y me vuelvo a conectar y los sigo
teniendo.

Resumiendo: crea un schema pg_temp_* por cada conexión que quiera correr el
mismo script y luego estos permanecen.

Ahora, los programadores Visual Basic me dice que no pueden armar un
recordset con esta tabla y mandarla a un reporte que les dice que no existe.

ANA
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)commandprompt(dot)com]
Enviado el: Jueves, 11 de Mayo de 2006 04:16 p.m.
Para: Ana Smail
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Uso de tablas temporarias

Ana Smail escribió:

> - Dónde guarda Postgresql las tablas temporarias

En el disco, junto con todas las otras tablas.

> - En otros motores como p.e. SQL Server no recomiendan el uso de
> temporarias, dicen que hay que tratar de evitarlas. Qué me pueden decir
> ustedes, recomendarían crear una tabla en el schema, a la que una vez
usada
> (p.e. después de mostrar sus resultados) se eliminaran las filas o para el
> mismo uso una tabla temporal (obviamente cuando no se pueda resolver de
otra
> manera).

Usa una tabla temporal, no hay ningun problema.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-05-12 15:31:33 Re: RV: Uso de tablas temporarias
Previous Message Raúl Mero 2006-05-12 14:25:08 Re: RV: Windows+Apache+PHP+PostgreSQL