След като инсталирате пакета във вашата система както е описано в свързания въпрос
инсталирайте разширението dblink
във вашата база данни (тази, в която изпълнявате този код, чуждата база данни не се нуждае от нея):
CREATE EXTENSION dblink;
Можете да намерите примери за код в ръководството
.
Ето една проста версия на това, което използвам за копиране на данни между dbs:Първо, създайте ЧУЖД СЪРВЪР
CREATE SERVER mydb
FOREIGN DATA WRAPPER postgresql
OPTIONS (hostaddr '111.111.111.111',port '5432',dbname 'mydb');
FOREIGN DATA WRAPPER postgresql
беше предварително инсталиран в моя случай.
След това създайте функция, която отваря връзка, премахва стари данни (по избор), извлича нови данни, изпълнява ANALYZE
и затваря връзката:
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;