我有一个Postgres数据库,并通过其余的webservice连接到它。不过,我得到一个错误说:在Postgresql中禁用大小写敏感性
找不到关系“mytablename”
我相信这是因为我使用了camel大小写在我的数据库和表被命名为喜欢myTableName
。无论如何,我可以禁用postgresql中的大小写敏感吗?或者我必须(如果这是可能的话)让我的休息电话区分大小写?
我有一个Postgres数据库,并通过其余的webservice连接到它。不过,我得到一个错误说:在Postgresql中禁用大小写敏感性
找不到关系“mytablename”
我相信这是因为我使用了camel大小写在我的数据库和表被命名为喜欢myTableName
。无论如何,我可以禁用postgresql中的大小写敏感吗?或者我必须(如果这是可能的话)让我的休息电话区分大小写?
这个答案开始作为一个评论,但后来发展,当我意识到我可能有你的问题的解释。
在Postgres(q.v. here)中,所有未加双引号的标识符均为小写。因此SELECT * FROM MYTABLENAME
应该与SELECT * FROM mytablename
的行为相同。
我认为可能的原因是Postgres在mytablename
表中查找错误的模式。试试这个:
SELECT * FROM myschema.mytablename
其中myschema
是包含mytablename
表的模式的名称。如果这不能解决问题,则应确保表格实际存在。
@a_horse_with_no_name编辑,感谢您在Stack Overflow方面的精力。 –
感谢您的解释。通过将所有表重命名为小写来修复,因为我不知道如何在postgresql中找到模式名。 –
因此,您是否正在使用对所有标识符使用引号的ORM? – wildplasser
在netbeans中使用'数据库中的实体类'选项。 –
简单的答案:**从不**使用双引号标识符。详细信息在手册中:https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –