一.对于做项目来说,迁移数据库也是会遇到的事情。
- 原有数据库可能收费高的,要换更便宜的数据库。
- 产生新的数据库,更强大的功能,更方便的开发支持,使用数据库。
例如. 最近项目库进行了迁移,主要为了迎合市场需求,使用更便宜的数据库服务,原来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;
这是因为该函数不存在导致的,也是我一开始遇到的错误。
那其实按上边的语句执行完后,应该就没问题了,可以正常访问其他库的表数据了.
但也是相当麻烦,每次都要写相当多的一串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 就可以像查询表格一样查询了。
以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。
要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://alexlee.club/postgresql-dblink%e7%9a%84%e4%bd%bf%e7%94%a8/2023/05/10/
共有 0 条评论