PostgreSQL连接2个数据库

时间:2011-06-09 16:02:25

标签: 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");

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

注意:键都是VARCHAR(11)

1 个答案:

答案 0 :(得分:5)

您需要查看db_link contrib。

如果您熟悉C语言,那么还有一个名为foreign data wrappers的可爱功能。它允许使用纯SQL操作几乎任何源。 Example with Twitter

SELECT from_user, created_at, text FROM twitter WHERE q = '#postgresql';