【发布时间】:2016-07-29 12:47:33
【问题描述】:
如何使用 PostgreSQL 连接来自不同数据库的两个表?我的第一个数据库称为“payments_details”,第二个数据库称为“保险”。另外我想使用php显示和突出显示他们没有共同点的id,这可能吗?
【问题讨论】:
标签: php postgresql
如何使用 PostgreSQL 连接来自不同数据库的两个表?我的第一个数据库称为“payments_details”,第二个数据库称为“保险”。另外我想使用php显示和突出显示他们没有共同点的id,这可能吗?
【问题讨论】:
标签: php postgresql
数据库是相互隔离的,一个SQL语句不能访问不同数据库的数据。这不是错误,而是设计功能。
有三种方法可以实现你想要的:
不要将数据放在不同的数据库中,而是放在一个数据库中的不同模式中。对于熟悉 MySQL 的人来说,将属于一个应用程序的数据拆分到多个数据库中然后尝试加入它们是一个常见的错误。这是因为 MySQL 中的术语 database 大致相当于(标准)SQL 中称为 schema 的内容。
如果您无法执行上述操作,例如因为数据确实属于不同的应用程序,所以可以使用PostgreSQL foreign data wrapper。这使您能够从不同的数据库(甚至在不同的机器上)访问表,就好像它们是本地表一样。您必须更加仔细地编写语句,因为如果需要在数据库之间传输大量数据,复杂的查询有时会效率低下。
您可以使用dblink,这是一个比外部数据包装器更旧且不太舒适的界面,但可以让您执行其他方式无法执行的操作,例如调用远程函数。
【讨论】: