PostgreSQL连接2个数据库

Muf*_*Man 2 postgresql select join subquery

我是PostgreSQL的新手.我在PostgreSQL 9.0,db1和db2中有2个数据库,而对于db2我有只读访问权限.我想创建一个存储函数,否则可以通过JOIN或嵌套查询轻松完成,这是PostgreSQL跨数据库无法做到的.

在db1中,我有table1,我可以在其中查询一组外键,我可以用它来搜索db2中table2中的记录,如:

SELECT * from db2.table2 WHERE db2.table2.primary_key IN (
    SELECT db1.table1.foreign_key FROM db1.table1 WHERE
        db1.table1.primary_key="whatever");
Run Code Online (Sandbox Code Playgroud)

在Postgres中执行此操作的最佳做​​法是什么?我不能在db2中使用临时表,并且在db2中运行的存储函数中传入外键作为参数似乎不是一个好的解决方案.

注意:键都是VARCHAR(11)

Den*_*rdy 5

您将要查看db_link contrib.

顺便说一下,如果你熟悉C,那么还有一个叫做外国数据包装器的可爱功能.它允许使用纯SQL操作几乎任何源.Twitter的示例:

SELECT from_user, created_at, text FROM twitter WHERE q = '#postgresql';
Run Code Online (Sandbox Code Playgroud)