sql - Postgresql 表存在,但查询时得到 "relation does not exist"

标签 sql 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' {}

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

最佳答案

如果不是公共(public)模式,则必须包含模式

SELECT *
FROM <schema>."my_table"

或者您可以更改默认架构

SHOW search_path;
SET search_path TO my_schema;

在此处检查您的表架构

SELECT *
FROM information_schema.columns

enter image description here

例如,如果一个表在默认模式 public 上,这两者都可以正常工作

SELECT * FROM parroquias_region
SELECT * FROM public.parroquias_region

但部门需要指定架构

SELECT * FROM map_update.sectores_point

关于sql - Postgresql 表存在,但查询时得到 "relation does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753568/

相关文章:

更大查询中的 MySQL COUNT 语法

SQL:更新表一次只更新 7 行

ruby-on-rails - 可以在 Heroku 上拥有一个动态使用不同数据库的应用程序吗?

java - 嵌套异常是 java.lang.NoClassDefFoundError : org/springframework/data/mapping/IdentifierAccessor

PostgreSQL jsonb - 省略多个嵌套键

sql - 创建一个简单的用户界面来访问 Oracle 数据库

mysql - 使用 group by 和 Laravel 获取最新行

sql - MySQL 查询 - 显示不在另一个表中的结果

SQL 查询 : Deleting rows from PostgreSQL with same values

sql - PostgreSQL - 删除超过一个小时的数据,然后将新数据插入同一个表