PostgreSQL - 查询现有表格 - psql 提示表格不存在。

22

新的Postgres安装,数据库名称为“test”,使用另一个程序创建了“Graeber”表。

我想查看“Graeber”表格的内容。当我连接到数据库并尝试选择“Graeber”表格的内容时,应用程序告诉我: ERROR:relation "graeber" does not exist

见截图:

enter image description here

这里出了什么问题?


9
是的,因为你必须使用双引号来表示大写字母:SELECT * FROM "Graeber" - Houari
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS - user330315
3个回答

55

尝试添加如下模式:

select *
from public.Graeber

如果那样不起作用,那么很可能是因为您的输入中有大写字母,尝试如下:

select *
from public."Graeber"

希望这能帮到你。


2
谢谢,我遇到了类似的问题。select * from public."Graeber" 对我有用。 - JasonS
似乎表名的大写字母需要用引号括起来...我不需要public.部分。感谢您的帮助。 - Kilo Loco
谢谢,我在Hive表全部大写的情况下遇到了这个问题。我想不出为什么Postgres找不到它们。 - fracca
如果您想要一个区分大小写的表名和列名的特定列: SELECT "Graeber"."Name" FROM public."Graeber" - Rich_Rich
select * from "Graeber" 也可以工作。不需要添加 public。 - Sandeep Chauhan

7

当在cmd中使用psql控制台时,有时可能会忘记在选择语句的末尾添加';'

示例-1: select * from user #不会返回任何结果

select * from user; #this works with ';' at the end

别误会,我在PostgreSQL 13版本中遇到了这个问题。


3

查看此示例。

queuerecords=# create table employee(id int,name varchar(100));
        CREATE TABLE


queuerecords=# insert into employee values(1,'UsmanYaqoob');
        INSERT 0 1


queuerecords=# select * from employee;
    id |    name
    ----+-------------
    1 | UsmanYaqoob
    (1 row)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接