Når du har installeret pakken i dit system som beskrevet detaljeret i det relaterede spørgsmål
installer udvidelsen dblink
ind i din database (den du kører denne kode i, den udenlandske db har ikke brug for den):
CREATE EXTENSION dblink;
Du kan finde kodeeksempler i manualen
.
Her er en simpel version af, hvad jeg bruger til at kopiere data mellem dbs:First, opret en UDENLANDSKE SERVER
CREATE SERVER mydb
FOREIGN DATA WRAPPER postgresql
OPTIONS (hostaddr '111.111.111.111',port '5432',dbname 'mydb');
FOREIGN DATA WRAPPER postgresql
var forudinstalleret i mit tilfælde.
Så opret en funktion, der åbner en forbindelse, fjerner gamle data (valgfrit), henter nye data, kører ANALYZE
og lukker forbindelsen:
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;