这是我的问题:
实际上我正在使用 postgresql 9.4 和 postGIS 扩展。
我正在创建一个数据库,并添加新表,没有任何问题...使用几何数据类型...直到现在......
现在,我不知道为什么,我突然必须“选择模式”来获取我的数据类型......
我正在使用 pgadminIII 来创建我的表,因此我添加了一个新表,当我尝试添加新列时,我写下列名,然后在数据类型中我尝试输入“geometry”,但它不再起作用...我现在必须写“public.geometry”,因为几何类型是在公共模式中注册的...我在第 30 个表中,而在之前的表中我不需要这样做,管理器直接识别了几何类型......
postgis 扩展有效并且已在我的数据库中注册(功能和扩展正常),
有人对此有想法吗:
- 我怎么会这样...为什么现在会发生这种情况...
- 如何解决这个问题......(输入这个内容很无聊,而且我担心当我必须对此表进行查询时,如果不提供架构名称,我将无法调用 postgis 函数......)
感谢您的阅读/帮助
编辑 :
搜索路径如下:
当我说“public.”dataType时,我的意思如下:
答案1
听起来您的名称search_path
不知怎么就变了。默认架构搜索路径是,"$user",public
这意味着如果您使用非限定标识符,它会首先在与您的用户同名的架构中查找它,如果没有找到,则尝试公共架构。
您可以使用以下方式检查搜索路径
SHOW search_path;
并使用以下方法将搜索路径恢复为默认路径:
SET search_path TO DEFAULT;
更改 search_path 的罪魁祸首可能很难识别,很可能是调用SET search_path...
而不是 的函数SET LOCAL search_path
,但使用SET
仅限于单个会话,如果您启动新会话,则应将其重置回默认值。如果这不能解决问题,您可能需要检查文件postgresql.conf
以查看 search_path 默认值是否已从 更改为
search_path = '"$user",public'