Después de haber instalado el paquete en su sistema como se detalla en la pregunta relacionada
instale la extensión dblink
en su base de datos (en la que está ejecutando este código, la base de datos externa no lo necesita):
CREATE EXTENSION dblink;
Puede encontrar ejemplos de código en el manual
.
Aquí hay una versión simple de lo que uso para copiar datos entre bases de datos:Primero, crear un SERVIDOR EXTRANJERO
CREATE SERVER mydb
FOREIGN DATA WRAPPER postgresql
OPTIONS (hostaddr '111.111.111.111',port '5432',dbname 'mydb');
FOREIGN DATA WRAPPER postgresql
estaba preinstalado en mi caso.
Luego crea una función que abre una conexión, elimina datos antiguos (opcional), recupera datos nuevos, ejecuta ANALYZE
y cierra la conexión:
CREATE OR REPLACE FUNCTION f_tbl_sync()
RETURNS text AS
$BODY$
SELECT dblink_connect('mydb'); -- USER MAPPING for postgres, PW in .pgpass
TRUNCATE tbl; -- optional
INSERT INTO tbl
SELECT * FROM dblink(
'SELECT tbl_id, x, y
FROM tbl
ORDER BY tbl_id')
AS b(
tbl_id int
,x int
,y int)
ANALYZE tbl;
SELECT dblink_disconnect();
$BODY$
LANGUAGE sql VOLATILE;