无法查询PostgreSQL中的表细节

3

我只是想查询Users表中的所有详细信息:

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

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


谢谢你。我已经提供了截图以验证层次结构(数据库下的表创建)。 - Anuj Balan
1个回答

9
在PostgreSQL中,“裸露”的标识符是小写的。所以Users被视为users(查看错误消息;它提到了users)。
要使其工作,请将标识符用双引号括起来,例如SELECT * from "Users";
如果您的标识符已经都是小写,并且不是保留字,则可以将它们裸露使用,否则请用双引号引用它们。
这适用于标识符(因此是表名、列名、模式名和其他一些内容)。

太棒了,兄弟!!!那就是问题所在。以前的版本(8.x)从未遇到过这个问题。 - Anuj Balan
还需要修复。在SQL编辑器中,当执行select * from "Users";时,我能够获得结果。但是我需要从Java类中发送这个查询。有什么办法可以构造一个字符串,使其等于select * from "Users"?我无法直接添加""到Users,因为它提示找不到users。 - Anuj Balan
抱歉,我不太了解Java,但听起来很简单。请提一个标记为Java的问题。 - zgpmax
@Ajj:在Java字符串中,引号需要进行转义;在字符串内部使用"。所以,"SELECT * FROM \"Users\";" - Mike Sherrill 'Cat Recall'

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