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/
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 |