我有一个 db 表,说 persons
在 Postgres 中,由另一个列名为 "first_Name"
的团队传下来。现在我正在尝试使用 PG 指挥官在此列名上查询此表。
select * from persons where first_Name="xyz";
它只是返回
错误:列“first_Name”不存在
不确定我是否在做一些愚蠢的事情,或者是否有解决这个问题的方法?
原文由 5122014009 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 db 表,说 persons
在 Postgres 中,由另一个列名为 "first_Name"
的团队传下来。现在我正在尝试使用 PG 指挥官在此列名上查询此表。
select * from persons where first_Name="xyz";
它只是返回
错误:列“first_Name”不存在
不确定我是否在做一些愚蠢的事情,或者是否有解决这个问题的方法?
原文由 5122014009 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
3 回答2.3k 阅读
2 回答946 阅读
没有 双引号的 标识符(包括列名)在 PostgreSQL 中被折叠为小写。使用 双引号 创建并因此保留大写字母(和/或其他语法违规)的列名必须在其余生中使用双引号:
值(字符串文字/常量)用 _单引号括起来_:
所以, 是 的,PostgreSQL 列名区分大小写(双引号时):
在此处阅读有关标识符的手册。
我的常规建议是仅使用合法的小写名称,因此不需要双引号。