Postgresql 表存在,但查询时得到“关系不存在”

新手上路,请多包涵

我有一个带有许多表的 postgresql 数据库。如果我查询:

 SELECT column_name
FROM information_schema.columns
WHERE table_name="my_table";

我将获得正确返回的列列表。

但是,当我查询时:

 SELECT *
FROM "my_table";

我得到错误:

 (ProgrammingError) relation "my_table" does not exist
'SELECT *\n    FROM "my_table"\n' {}

关于为什么我可以获取列但无法查询表的任何想法?目标是能够查询表。

原文由 patkil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
2 个回答

如果不是公共架构,则必须包含架构

SELECT *
FROM <schema>."my_table"

或者您可以更改默认架构

SHOW search_path;
SET search_path TO my_schema;

在此处检查您的表架构

SELECT *
FROM information_schema.columns

在此处输入图像描述

例如,如果一个表在默认模式上 public 这两个都可以

SELECT * FROM parroquias_region
SELECT * FROM public.parroquias_region

但部门需要指定架构

SELECT * FROM map_update.sectores_point

原文由 Juan Carlos Oropeza 发布,翻译遵循 CC BY-SA 3.0 许可协议

请确保:

  1. 您的密码不为空
  2. 如果为空,请勿在连接字符串中传递 password 参数

这是开始学习本教程时最常见的错误之一。

原文由 Kritika 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进