我persons在另一个列名称为的团队的Postgres中有一个db表说"first_Name"。现在,我试图使用PG指令在此列名上查询该表。
persons
"first_Name"
select * from persons where first_Name="xyz";
它只是返回
错误:列“ first_Name”不存在
不知道我是在做傻事还是对我遗失的问题有解决方法?
所有未加双引号的 标识符 (包括列名)在PostgreSQL中被折叠为小写。用双引号创建的列名并因此保留了大写字母(和/或其他语法违规),必须在余下的时间将双引号引起来:("first_Name")
因此, 是的 ,PostgreSQL列名称区分大小写:
SELECT * FROM persons WHERE "first_Name" = 'xyz';
还要解决周围不正确的双引号'xyz'。 值 (字符串文字)用 单引号引起来 。
'xyz'
在此处阅读手册。
我的长期建议是仅使用合法的小写名称,因此不需要双引号。