小编典典

PostgreSQL 列名是否区分大小写?

all

我有一个 db 表,persons在 Postgres 中由另一个列名为"first_Name". 现在我正在尝试使用 PG
指挥官在此列名上查询此表。

select * from persons where first_Name="xyz";

它只是返回

错误:列“first_Name”不存在

不确定我是否在做一些愚蠢的事情,或者是否有解决这个问题的方法?


阅读 62

收藏
2022-06-21

共1个答案

小编典典

**没有 双引号的 标识符 (包括列名)在 PostgreSQL 中被折叠为小写。使用 双引号
创建并因此保留大写字母(和/或其他语法违规)的列名必须在其余生中使用双引号:

"first_Name"

(字符串文字/常量)用 _ 单引号括起来_ :

'xyz'

所以, 的,PostgreSQL 列名区分大小写(双引号时):

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

在此处阅读有关标识符的手册。

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

2022-06-21