数据库链接
您可以使用dblink在查询中引用来自另一个数据库的表。
然后您的查询可能如下所示(多种不同方法之一):
SELECT id
FROM clients c
LEFT JOIN (
SELECT *
FROM dblink('dbname=mydb', 'SELECT id FROM clients')
AS c(id int)
) x USING (id)
WHERE x.id IS NULL;
自 PostgreSQL 9.1 以来,安装附加模块变得更加简单:
CREATE EXTENSION dblink;
每个数据库运行一次。至于必要的特权:
加载扩展需要创建其组件对象所需的相同权限。对于大多数扩展,这意味着需要超级用户或数据库所有者权限。
复制
如果 dblink(或类似的 x-db 工具对您不可用,请尝试使用COPY
TO / FROM 传输外部表的内容:
在国外数据库中:
COPY clients TO '/path/to/file';
在家庭数据库中:
CREATE TEMP TABLE c_tmp (LIKE clients);
COPY c_tmp FROM '/path/to/file';
SELECT id
FROM clients c
LEFT JOIN c_tmp x USING (id)
WHERE x.id IS NULL;
温度。表在会话结束时自动删除。