我有一个包含许多表的 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
例如,如果一个表在默认模式 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/