如何使用PostgreSQL连接来自不同数据库的两个表?

时间:2016-07-29 12:47:34

标签: php postgresql

如何使用PostgreSQL连接来自不同数据库的两个表?我的第一个数据库名为" payments_details"而我的第二个叫做"保险"。此外,我想展示并突出显示他们没有共同使用php的ID,这可能吗?

1 个答案:

答案 0 :(得分:1)

数据库彼此隔离,您无法使用一个SQL语句访问来自不同数据库的数据。这不是一个错误,而是一个设计特征。

有三种方法可以达到你想要的效果:

  1. 不要将数据放在不同的数据库中,而是放在一个数据库中的不同模式中。对于使用MySQL更有经验的人来说,将属于多个数据库中的一个应用程序的数据拆分然后尝试加入它们是一个常见的错误。这是因为MySQL中的术语 database 大致相当于(标准)SQL中称为 schema 的内容。

  2. 如果您不能执行上述操作,例如:因为数据确实属于不同的应用程序,所以可以使用PostgreSQL foreign data wrapper。这使您可以从不同的数据库(甚至在不同的计算机上)访问表,就像它们是本地表一样。您必须更仔细地编写语句,因为如果在数据库之间传输大量数据,复杂查询有时会效率低下。

  3. 您可以使用dblink,这是一个比外国数据包装更旧且不太舒服的界面,但可以让您做一些其他方法无法做到的事情,比如调用远程函数。