PostgreSQL dblink的使用

alexlee 2023-5-10 704 5/10

一.对于做项目来说,迁移数据库也是会遇到的事情。

  1. 原有数据库可能收费高的,要换更便宜的数据库。
  2. 产生新的数据库,更强大的功能,更方便的开发支持,使用数据库。

例如. 最近项目库进行了迁移,主要为了迎合市场需求,使用更便宜的数据库服务,原来oracle的库移到了 postgresql 库上

程序运行起来,居然一堆报错,程序无法正常运行。

每次迁移数据库都会有大大小小的问题,各种意想不到的报错,我们只能尽可能的仔细检查一下,避免程序无法正常运行。

为些,特意检查了程序的报错,发现以前有些表是用dblink来做的,库迁移过来后,这个dblink的语法在新库中无法正常识别。

那知道了问题,我们就为pg库这里也要加上这个dblink的操作。

以下是pg库创建dblink的操作

1.0 create extension dblink;

SELECT * FROM dblink('host=主机地址 port=端口 dbname=数据库名称 user=用户名 password=密码',
'SELECT aa,bb From tble') AS t(aa text,bb text)

t(aa text,bb text) 这里是对应表里相应的字段跟字段类型

假如报错了,是没有执行 create extension dblink; 

这是因为该函数不存在导致的,也是我一开始遇到的错误。

PostgreSQL dblink的使用

那其实按上边的语句执行完后,应该就没问题了,可以正常访问其他库的表数据了.

但也是相当麻烦,每次都要写相当多的一串sql吗? 为此我们可以建立一个视图来方便我们的调用

2.0 使用以下sql语句,建立视图,方便调用

CREATE or replace view view_remote_tb AS

SELECT * FROM dblink('host=主机地址 port=端口 dbname=数据库名称 user=用户名 password=密码',
'SELECT aa,bb From tble') AS t(aa text,bb text)

3.0 使用语句 select * from view view_remote_tb 就可以像查询表格一样查询了。

以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。

要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。

- THE END -
最后修改:2024年2月4日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论