目录
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.7.6
症状
导入sql文件后,psql未能找到相关的数据表,提示关系不存在,连接hgadmin可以看到这几个表。
问题原因
1、由于导入的表在其他模式中,但是PG有个search_path的概念,类似操作系统的PATH路径,定义此设置来让PG识别对象应该在哪里。对用户视图访问的对象进行搜索(类似PATH变量),搜索时使用首个发现的模式。
2、新加入的表的模式,在当前的search_path中没有设置,将此模式加入当前的search_path设置中,需要更改search_path设置。
解决方案
1、先查看当前的search_path。
| highgo=# show search_path; |
2、更改search_path设置,设置方法:(在不同的层级以不同的方式设置)
·在会话运行时间中设置search_path-----set serch_path=
·也可以在配置文件中或系统层面设置默认的search_path------postgresql.conf,alter system set search_path=
·也可以以超级用户使用ALTER USER命令-----alter user myuser set search_path=
例如在系统层面添加a和b模式。
|
highgo=# alter system set search_path="$user", public, a,b; ALTER SYSTEM |
等多解决方案请登录【瀚高技术支持平台】 查看
解决PSQL找不到导入数据表问题
本文介绍了解决在Linux环境下使用PSQL时,因search_path设置不当导致无法找到已导入数据表的问题。通过调整search_path设置,使新表在正确模式下可见。
1423

被折叠的 条评论
为什么被折叠?



