Re: Select en una BD e insert en otra BD

From: Calabaza <calalinux(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Select en una BD e insert en otra BD
Date: 2008-08-21 02:27:01
Message-ID: 958993320808201927j3bac2eect3a0490eca7d5647f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 20 de agosto de 2008 18:51, Laura reiva
<lauraleyton(at)hotmail(dot)es> escribió:
> Hola a todos:

> Estoy realizando una extensión para gvSig

que es gvSig?

> y utilizo como gestor de base de
> datos PostgreSQL. Programo en Java, utilizo el entorno de desarrollo de
> Eclipse.

> Mi duda es la siguiente: Tengo mi base de datos original en postgreSQL con
> todos mis datos, y en cada todas las tablas se repite el campo código, que
> es único y por lo tanto identificador.

> Además, tengo una base de datos auxiliar, exactamente igual a la original,
> con la misma estructura, pero totalmente vacía.

> Lo que quiero hacer es una selección de la base de datos original (es decir,
> una selección de todas las tablas) y lo que me devuelva almacenarlo en la
> base de datos auxiliar en las tablas que corresponden.

> Es decir, si hago un select de código = 1, pues que me devuelva las tuplas
> de la Tabla1, Tabla2, etc. Y me las almacene en las Tabla1, Tabla2, etc. de
> mi base de datos auxiliar.

Bueno, así como lo planteas no creo que se pueda tan
"automaticamente", tienes varias opciones para tu problema, pero debes
encararlo de otra forma, te lanzo algunos tips y disculpa la falta de
precisión ;)

1) Si deseas clonar tu BD original (esto es copia de todos los
registros y la esctructura de tu bd):

Puedes utilizar schemas y creas tu bd auxiliar en otro schema, para
eso solo debes hacer un backup de tu bd original y restaurarlo en tu
schema auxiliar.

Para hacer esto puedes usar pg_dump [2] y pg_restore[3]
[2] http://www.postgresql.org/docs/8.3/interactive/app-pgdump.html
[3] http://www.postgresql.org/docs/8.3/interactive/app-pgrestore.html

Información sobre schemas[5] lo encontrarás aquí:
[5]http://www.postgresql.org/docs/8.3/interactive/ddl-schemas.html

2) Si deseas clonar algunas tablas y sus datos:
Puedes hacer lo mismo pero por cada una de las tablas (por si acaso no
quieras borrar tu bd auxiliar por algun motivo)

3) Si deseas copiar un subconjunto de los registros de algunas tablas
(o todas)....

Puedes darte una vuelta por:
[1]http://www.postgresql.org/docs/8.3/interactive/sql-insert.html

Aquí se explica que puedes llenar una tabla con los datos de una consulta...

".... This example inserts some rows into table films from a table
tmp_films with the same column layout as films:"
Este ejemplo inserta algunas filas en la tabla films desde una tabla
tmp_films con las columnas distribución (ubicadas) de la misma forma
que en films:

INSERT INTO films SELECT * FROM tmp_films WHERE date_prod < '2004-05-07';

Tambien puedes utilizar Create table as[4]:
[4]http://www.postgresql.org/docs/8.3/interactive/sql-createtableas.html

"... Create a new table films_recent consisting of only recent entries
from the table films:..."

CREATE TABLE films_recent AS
SELECT * FROM films WHERE date_prod >= '2002-01-01';

> Estoy muy perdida,

Si tu ingles es aceptable, puede empezar mirando el manual... :)

> ésto es totalmente nuevo para mi
> y no sé cómo hacer

> y me
> urge mucho.

> Agradezco vuestra ayuda.

> Por favor, cualquier ayuda sobre cómo hacer es bienvenida, que estoy
> desesperada.

Si el problema realmente es el tiempo están los compañeros
de soporte profesional :)

> Gracias.

Por nada, un abrazo...
--
§~^Calabaza^~§ from Villa Elisa, Paraguay

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Laura reiva 2008-08-21 12:11:06 RE: Select en una BD e insert en otra BD
Previous Message Laura reiva 2008-08-20 22:51:14 Select en una BD e insert en otra BD