Re: FW: Duda sql bases de datos

From: "Marco Antonio Frias Butron" <marcoantoniofrias(at)gmail(dot)com>
To: "Laura reiva" <lauraleyton(at)hotmail(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: FW: Duda sql bases de datos
Date: 2008-05-28 16:40:25
Message-ID: 33e030de0805280940i514fc0e4xd9f1384f1fcec6e4@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/5/28 Laura reiva <lauraleyton(at)hotmail(dot)es>:
> Hola,
> La base de datos original no la puedo aumentar más pues ya contiene
> alrededor de cien tablas y debo realizar ésta "copia" con varias de ellas,
> por lo que crear una nueva tabla en la base de datos original para cada una
> de ellas sería muy complejo. Tendré que usar dblink, aunque no lo conozco.
> Tengo instalado postgreSQL 8.1. ¿Podría explicarme cómo funciona el producto
> dblink?

1ro. instalar dblink en la base de datos 1:

$psql -d db1 -U usuario -f /direccion/al/archivo/dblink.sql

2do. creas una función con un contenido parecido a este:

CREATE OR REPLACE FUNCTION dblink_db1_db2() RETURNS VOID AS $$
DECLARE
fila RECORD;
BEGIN

-- inicias la conexion
SELECT dblink_connect('dbname=db2 user=usuario password=contrasena');

-- obtienes los registros de la db1 (conexion actual) [puedes hacer
con cursores también]
FOR fila IN SELECT * FROM tablaAlumnos_db1 WHERE sexo = 'M' LOOP
-- insertas en la db2. fila: es la estructura que obtiene de cada
fila de la tabla
-- campo1,campo2,etc: son los atributos de la tabla de la 2da base.
SELECT dblink_exec('INSERT INTO tablaAlumnos_db2 VALUES(' ||
fila.campo1 || ',' || fila.campo2 || ');');
END LOOP;

-- cierras la conexion
SELECT dblink_disconnect();

END;
$$ LANGUAGE plpgsql;

3ro. ejecutas la función:

SELECT dblink_db1_db2();

Dale una leída a los archivos dentro de contrib/dblink/doc del código fuente.

--
Saludos y abrazos...

Marco Antonio Frias Butrón
Slackware Linux User
Linux Registered User #356229 - http://counter.li.org/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Beltran R. 2008-05-28 17:30:34 Re: Error fatal en base de datos
Previous Message Jenaro Centeno Gómez 2008-05-28 16:09:10 Re: Instalacion desatendida