我可以在postgresql中使用另一个数据库表,但是给人的印象是该表存在于同一个数据库中吗?

时间:2016-08-09 09:11:54

标签: postgresql psql

说我有以下数据库主机

  1. core(主持人:a.b.c.d,dbaname:core,用户名:coreUser),其中包含表格usersaccounts和{{1 }}
  2. permissions(主持人:app1,dbname:d.e.f.g,用户名:appdb1
  3. appuser1(主持人:app2,dbname:h.i.k.l,用户名:appdb2
  4. 我希望appuser2core.userscore.accounts可用作core.permissionsapp1上的原生表格。我希望能够镜像确切的表,并且这些表的插入和更新应该更新app2中的表。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

postgres_fdw可以胜任。

  

postgres_fdw模块提供外部数据包装器   postgres_fdw,可用于访问存储在外部的数据   PostgreSQL服务器。

     

此模块提供的功能基本上与重叠   旧版dblink模块的功能。但是postgres_fdw   为访问提供更透明和符合标准的语法   远程表,在许多情况下可以提供更好的性能。

正如您所知,FDW代表外国数据包装器,它用于将外部数据源连接到postgresql。在这种情况下,外部数据源是另一个postgrsql数据库。

答案 1 :(得分:1)

是的,请查看slony replication

如果您不想复制数据,那么dblink extension可能会对您有所帮助。它允许从一个数据库调用查询到另一个数据库。与函数或视图结合使用可能很有用(尽管对core所做的更改不会自动反映在“子”数据库中)。