PostgreSQL 查询失败:“关系不存在”
尝试执行 SQL 查询时,您可能会遇到错误“relation '关系名称'不存在。”此错误表明 PostgreSQL 无法在当前数据库中找到指定的关系,通常是表或视图。
问题原因
常见原因之一此错误是使用不正确的大小写引用关系名称。如果关系名称包含混合大小写,例如“SF_Bands”,而查询使用小写“sf_bands”,则查询将失败。 PostgreSQL 在处理标识符时区分大小写,因此必须保留混合大小写。
解决方案 1:在标识符中使用双引号
正确引用关系混合大小写,使用双引号 (") 来分隔标识符。对于示例:
SELECT * FROM "SF_Bands" LIMIT 10;
解决方案 2:设置架构搜索路径
如果关系属于非默认架构,您可以调整架构搜索路径以包含相关模式。搜索路径定义 PostgreSQL 在解析关系名称时搜索模式的顺序。
将模式添加到搜索中路径,执行以下命令:
SET search_path TO <schema_name>,public;
在本例中,将
示例
对于名为“showfinder”的模式中名为“sf_bands”的关系,您可以调整搜索路径并修改查询如下:
SET search_path TO showfinder,public; SELECT * FROM sf_bands LIMIT 10;
以上是PostgreSQL'关系不存在”:为什么我的查询失败以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!