当前位置: 首页 > 面试题库 >

PostgreSQL列名称区分大小写吗?

勾炜
2023-03-14
问题内容

persons在另一个列名称为的团队的Postgres中有一个db表说"first_Name"。现在,我试图使用PG指令在此列名上查询该表。

select * from persons where first_Name="xyz";

它只是返回

错误:列“ first_Name”不存在

不知道我是在做傻事还是对我遗失的问题有解决方法?


问题答案:

所有未加双引号的 标识符
(包括列名)在PostgreSQL中被折叠为小写。用双引号创建的列名并因此保留了大写字母(和/或其他语法违规),必须在余下的时间将双引号引起来:("first_Name"

因此, 是的 ,PostgreSQL列名称区分大小写:

SELECT * FROM persons WHERE "first_Name" = 'xyz';

还要解决周围不正确的双引号'xyz' (字符串文字)用 单引号引起来

在此处阅读手册。

我的长期建议是仅使用合法的小写名称,因此不需要双引号。



 类似资料:
  • 我有一个db表说,在Postgres传给另一个团队,有一个列名说,。现在我试图使用PG指挥官来查询这个列名称上的表。 然后它就回来了 错误:列"first_Name"不存在 不确定我是在做一些愚蠢的事情,还是有解决这个问题的方法,我错过了?

  • 问题内容: 启动我的应用程序时出现此错误 我不太确定为什么要得到这个,因为我的表/列名称全部都以大写字母引用(即使该消息坚持认为这不应该成为问题) 我的桌子: 我的网域实体的代码段: 测试日期的片段,我试图强制DBUnit使用: 我想不出要尝试的其他方法,删除了表并重新编译了Java代码,有什么想法吗? 问题答案: 您是否要尝试将ID已设置的Client放入数据库?ID列是只读的,只有数据库可以对

  • 问题内容: 如果我有一个名为和的列名,它们是否不同? 如果我有一个名为和的表,它们是否不同? 问题答案: 在Unix上,表名区分大小写。在Windows上则不是。好玩,不是吗?Kinda喜欢各自的文件系统。你觉得这是巧合吗? 换句话说,如果您打算在Linux机器上进行部署,则也可以针对基于Linux的MySQL更好地测试SQL,或者在生产时为神秘的“找不到表”错误做好准备。这些天虚拟机很便宜。 字

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: 如果一个人在不同目录中编写了两个具有相同的不区分大小写名称的公共Java类,则这两个类在运行时将不可用。(我在Windows,Mac和Linux上使用多个版本的HotSpot JVM进行了测试。如果还有其他同时可用的JVM,我也不会感到惊讶。)例如,如果我创建了一个名为类的类,则这样命名: 在我的网站上可以找到三个包含上面代码的Eclipse项目。 如果尝试,我像这样调用两个类: 类型