pg的跨库查询

mysql和mssql的跨库查询,基本只需要dbname.schema.table_name就可以实现,而pg的跨库查询,和oracle一样,需要通过类似dblink的方式来实现。pg在9.3之前建议使用dblink,在9.3之后,建议使用postgres_fwd(foreign-data wrapper)。
我们假设有个库mydb001,里面有2个用户mydb001_rw和mydb001_r,分别是读写用户和只读用户。有另外一个库dbprd2,里面也是有2个用户dbprd2_rw和dbprd2_r。
我们需要在mydb001库中利用mydb001_rw用户,去只读的查询dbprd2库的tb_orad_mutex表。

一、需要以superuser安装extension(注,如果你需要每个database都使用,那么每个database都要装一次这个extension,或者你也可以一开始就在template1中安装,那么后续新建的database也都会包含了这个extension):

二、还是以superuser用户,创建remote server,用于连接远程数据库。

注意此时修改pg_hba.conf文件,允许连接。

三、以应用用户连接,创建user mapping:

四、应用用户下创建 FOREIGN TABLE:

五、测试查询,以及尝试是否能更新(注,如果mapping user的时候,用的是读写用户,那么也是可以更新的)

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据