Re: "COPY WHERE" cómo implementarlo?

Lists: pgsql-es-ayuda
From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: "COPY WHERE"=?ISO-8859-1?Q?_c=F3mo_implementarl?=o?
Date: 2005-11-08 16:17:07
Message-ID: 20051108160512.M82165@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola amigos. Una duda que supongo no debe ser tan complicada pero que no tengo
una idea clara acerca de cómo implementarlo.

Una tabla con información de personas se vá llenando día a día. Yo cada día
necesito exportar solamente los datos nuevos a un archivo de texto para que se
importen en un sistema que los procesa.

Mi idea era hacer algo como:

COPY catastral TO archAA-MM-DD.txt WITH DELIMITER '|' "WHERE id > ultIdExportado";

Lo que puse entre comillas dobles es el control que necesitaría hacer, pero el
comando COPY no ofrece esa posibilidad. ¿Cómo me sugieren implementarlo?.
Saludos...
-
-------------------------------------------
Sebastián Villalba
sebastian(at)fcm(dot)unc(dot)edu(dot)ar
-------------------------------------------


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Cc: Lista Ayuda Pgsql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: "COPY WHERE" cómo implementarlo?
Date: 2005-11-08 19:57:05
Message-ID: 20051108195705.GA933@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Sebastián Villalba escribió:
> Hola amigos. Una duda que supongo no debe ser tan complicada pero que no tengo
> una idea clara acerca de cómo implementarlo.
>
> Una tabla con información de personas se vá llenando día a día. Yo cada día
> necesito exportar solamente los datos nuevos a un archivo de texto para que se
> importen en un sistema que los procesa.
>
> Mi idea era hacer algo como:
>
> COPY catastral TO archAA-MM-DD.txt WITH DELIMITER '|' "WHERE id > ultIdExportado";

create temp table foo as select * from catastral where id > ultIdExportado;
copy foo to archAA-MM-DD.txt ...;

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


From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Cc: Lista Ayuda Pgsql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: "COPY WHERE" cómo implementarlo?
Date: 2005-11-08 20:07:00
Message-ID: c2d9e70e0511081207j6153d508xae7f1079c04b0f32@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 11/8/05, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> wrote:
> Hola amigos. Una duda que supongo no debe ser tan complicada pero que no tengo
> una idea clara acerca de cómo implementarlo.
>
> Una tabla con información de personas se vá llenando día a día. Yo cada día
> necesito exportar solamente los datos nuevos a un archivo de texto para que se
> importen en un sistema que los procesa.
>
> Mi idea era hacer algo como:
>
> COPY catastral TO archAA-MM-DD.txt WITH DELIMITER '|' "WHERE id > ultIdExportado";
>
> Lo que puse entre comillas dobles es el control que necesitaría hacer, pero el
> comando COPY no ofrece esa posibilidad. ¿Cómo me sugieren implementarlo?.
> Saludos...
> -
> -------------------------------------------
> Sebastián Villalba
> sebastian(at)fcm(dot)unc(dot)edu(dot)ar
> -------------------------------------------

create view .... where ...;
copy from view....;

-- al menos creo que en 8.1 ya puedes hacer un copy de una vista

Si no estas usando 8.1 podria ser algo como:

create temp table as select .... where ...;
copy from temp table....;

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)


From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: Lista Ayuda Pgsql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: "COPY WHERE"=?ISO-8859-1?Q?_c=F3mo_implementarl?=o?
Date: 2005-11-08 20:35:07
Message-ID: 20051108202851.M21007@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Jaime...

On Tue, 8 Nov 2005 15:07:00 -0500, Jaime Casanova wrote
> On 11/8/05, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> wrote:
> > Hola amigos. Una duda que supongo no debe ser tan complicada pero que no tengo
> > una idea clara acerca de cómo implementarlo.
> >
> > Una tabla con información de personas se vá llenando día a día. Yo cada día
> > necesito exportar solamente los datos nuevos a un archivo de texto para que se
> > importen en un sistema que los procesa.

> create view .... where ...;
> copy from view....;
>
> -- al menos creo que en 8.1 ya puedes hacer un copy de una vista

Siempre me olvido poner la versión :). Estoy trabajando con la 8.04. No
obstante acabo de fijarme en la documentación de 8.1 y en la parte de "Notes"
de http://www.postgresql.org/docs/8.1/static/sql-copy.html dice "COPY can only
be used with plain tables, not with views." por lo que voy a tener que hacerlo
mediante tablas temporales como me indicaste mas abajo.

> Si no estas usando 8.1 podria ser algo como:
>
> create temp table as select .... where ...;
> copy from temp table....;

Voy a leer acerca de las tablas temporales, pero muchas gracias. Seguramente
que la solución es esa. Un gran saludo...
-
-------------------------------------------
Sebastián Villalba
sebastian(at)fcm(dot)unc(dot)edu(dot)ar
-------------------------------------------