首页 > 数据库 > mysql教程 > 为什么即使表存在,我的 PostgreSQL 查询也会失败并显示'关系不存在”?

为什么即使表存在,我的 PostgreSQL 查询也会失败并显示'关系不存在”?

Susan Sarandon
发布: 2025-01-20 13:41:09
原创
829 人浏览过

Why Does My PostgreSQL Query Fail with

PostgreSQL 查询失败:“关系不存在”错误

问题

执行数据库查询会导致“关系不存在”错误,即使表名显示正确也是如此。

解决方案

此错误通常表明您引用表名称的方式存在问题。 最常见的原因是大小写敏感问题。 PostgreSQL 对于表名区分大小写。

例如,此查询将失败:

<code class="language-sql">CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!</code>
登录后复制

解决方案是使用双引号精确匹配表名的大小写:

<code class="language-sql">SELECT * FROM "SF_Bands";</code>
登录后复制

使用模式搜索路径

另一种方法涉及修改您的search_path。此设置规定 PostgreSQL 在数据库中搜索对象(如表)的顺序。 通过将表的架构添加到搜索路径,您可以引用该表,而无需显式声明架构。

要检查您当前的搜索路径:

<code class="language-sql">SHOW search_path;</code>
登录后复制

要添加 showfinder 架构(替换为您的实际架构):

<code class="language-sql">SET search_path TO showfinder,public;</code>
登录后复制

调整搜索路径后,可以使用小写名称查询表:

<code class="language-sql">SELECT * FROM sf_bands;</code>
登录后复制

有关配置search_path的全面详细信息,请参阅 PostgreSQL 官方文档:https://www.php.cn/link/d7323519970d0e3680ef5fa1edfe0e56

以上是为什么即使表存在,我的 PostgreSQL 查询也会失败并显示'关系不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板