PostgreSQL:奇怪的突发数据类型和选择架构问题

PostgreSQL:奇怪的突发数据类型和选择架构问题

这是我的问题:

实际上我正在使用 postgresql 9.4 和 postGIS 扩展。

我正在创建一个数据库,并添加新表,没有任何问题...使用几何数据类型...直到现在......

现在,我不知道为什么,我突然必须“选择模式”来获取我的数据类型......

我正在使用 pgadminIII 来创建我的表,因此我添加了一个新表,当我尝试添加新列时,我写下列名,然后在数据类型中我尝试输入“geometry”,但它不再起作用...我现在必须写“public.geometry”,因为几何类型是在公共模式中注册的...我在第 30 个表中,而在之前的表中我不需要这样做,管理器直接识别了几何类型......

postgis 扩展有效并且已在我的数据库中注册(功能和扩展正常),

有人对此有想法吗:

  • 我怎么会这样...为什么现在会发生这种情况...
  • 如何解决这个问题......(输入这个内容很无聊,而且我担心当我必须对此表进行查询时,如果不提供架构名称,我将无法调用 postgis 函数......)

感谢您的阅读/帮助

编辑 :

搜索路径如下:

SHOW search_path 的结果

当我说“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'

相关内容