在Postgres中,可以使用dblink链接到其他数据库,但语法非常详细。例如,您可以执行以下操作:

SELECT *
FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select * from table'
) AS users([insert each column name and its type here]);

有什么办法可以更快地完成这个任务吗?或许可以预先定义连接?
我注意到Postgres有一个新的连接MySQL数据库的create foreign table函数。它的语法比dblink简单。我能用一下吗?

最佳答案

在PostgreSQL 8.4及更高版本中,可以使用外部数据包装器功能来定义连接参数。然后在dblink命令中简单地引用外部服务器名。请参见documentation中的示例。
在PostgreSQL 9.1及更高版本中,您可以使用外部数据包装器功能来定义外部表,从而透明地访问远程数据库,而无需使用dblink。为此,您需要获得postgresql_fdw包装器,它还没有包含在任何生产版本中,但是您可以在internet上找到实验代码。实际上,这条路线更像是未来的选择。

07-28 01:10
查看更多