2012-02-11 48 views
1

我只是想查询目前所有细节Users表的表细节:无法查询PostgreSQL中

select * from Users; 

但它说表Users不存在:

ERROR: relation "users" does not exist 
LINE 1: select * from Users; 

********** Error ********** 

ERROR: relation "users" does not exist 
SQL state: 42P01 
Character: 15 

我可能犯一个愚蠢的错误。

+0

谢谢。我已经给出了截图来验证层次结构(数据库下的表创建)。 – 2012-02-11 19:40:40

回答

5

PostgreSQL中的“裸”标识符是小写的。因此Users被视为users(查看错误消息;它提到了users)。

要使其起作用,请将标识符放在双引号中,如SELECT * from "Users";

如果您的标识符都是小写字母,并且不是保留字,那么您可以使用它们,否则用双引号引用它们。

这适用于标识符(所以表名,列名,模式名称和其他一些东西)。

+0

真棒抓bro!这是问题。从不在较低版本(8.x)中遇到此问题 – 2012-02-11 19:20:25

+0

还有一个问题需要解决。从“用户”给出select *时,我得到了结果;在sql编辑器中。但是我需要从java类发送这个查询。任何想法如何构建一个字符串,以便它将等于从“用户”选择*。我无法明确地向用户添加“”,并且它的说法无法找到用户 – 2012-02-11 19:25:36

+0

对不起,我不知道足够的Java,但它听起来很直接。提问用Java标记的问题。 – zgpmax 2012-02-11 19:27:07