我有两个数据库:
管理员
Table
:员工
Columns
:id,name,city_id
连接
Table
:城市
Columns
:id,name_of_city
我想使用Employee.city_id
& postgre数据库中的City.id
列。
我该怎么做
答案 0 :(得分:1)
根据Postgresql FAQ,没有直接的方法来查询当前数据库以外的数据库。但您可以使用dblink。 dblink是一个支持从数据库会话中连接到其他PostgreSQL数据库的模块。
答案 1 :(得分:0)
从技术上讲,这可以通过postgres模块dblink实现,它允许您跨数据库进行连接。
话虽如此,当您考虑在数据库中维护外键时出现的一些架构和数据完整性问题时,您应该考虑从{city
表及其数据中移动connect
表。 {1}}数据库到admin
数据库。
答案 2 :(得分:0)
您希望PostgreSQL 9.3中提供postgres_fdw
。它是一个SQL / MED外部数据包装器,允许您创建到远程表的“链接”。
您可以将City表链接到Admin数据库,然后从普通SQL查询它。 PostgreSQL甚至可以在远程端运行WHERE
条件,只获取所需的行。它仍然比 lot 效率低于本地表,因为许多连接类型不可用,并且在使用之前传输数据会产生开销。
答案 3 :(得分:-2)
试试这个
SELECT e.id as emp_id,e.name,e.city_id,c.* FROM 'admin'.'employee' as e ,'connect'.'city' as c WHERE e.city_id = c.id;