2016-08-24 325 views
0

我有一个Postgres数据库,并通过其余的webservice连接到它。不过,我得到一个错误说:在Postgresql中禁用大小写敏感性

找不到关系“mytablename”

我相信这是因为我使用了camel大小写在我的数据库和表被命名为喜欢myTableName。无论如何,我可以禁用postgresql中的大小写敏感吗?或者我必须(如果这是可能的话)让我的休息电话区分大小写?

+0

因此,您是否正在使用对所有标识符使用引号的ORM? – wildplasser

+0

在netbeans中使用'数据库中的实体类'选项。 –

+1

简单的答案:**从不**使用双引号标识符。详细信息在手册中:https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –

回答

1

这个答案开始作为一个评论,但后来发展,当我意识到我可能有你的问题的解释。

在Postgres(q.v. here)中,所有未加双引号的标识符均为小写。因此SELECT * FROM MYTABLENAME应该与SELECT * FROM mytablename的行为相同。

我认为可能的原因是Postgres在mytablename表中查找错误的模式。试试这个:

SELECT * FROM myschema.mytablename 

其中myschema是包含mytablename表的模式的名称。如果这不能解决问题,则应确保表格实际存在。

+1

@a_horse_with_no_name编辑,感谢您在Stack Overflow方面的精力。 –

+0

感谢您的解释。通过将所有表重命名为小写来修复,因为我不知道如何在postgresql中找到模式名。 –