PostgreSQL列名是否区分大小写?

PostgreSQL列名是否区分大小写?

我有个数据库表,persons在Postgres中,另一个列名为:"first_Name"..现在,我试图使用PG指挥官来查询这个列名上的表。

select * from persons where first_Name="xyz";

它又回来了

错误:列“First_name”不存在

不知道我是不是在做一些愚蠢的事情,还是有一个解决办法来解决我错过的这个问题?


肥皂起泡泡
浏览 1876回答 3
3回答

不负相思意

在PostgreSQL中,所有没有双引号的标识符(包括列名)都折叠为小写。用双引号创建,从而保留大写字母(和/或其他语法违规)的列名在其余生中必须双引号。所以,是,PostgreSQL列名区分大小写:SELECT * FROM persons WHERE "first_Name" = 'xyz';还修正了周围不正确的双引号。'xyz'..值(字符串文本)括在单引号.看这里的手册。我的建议是只使用合法的、小写的名字,这样就不需要双重引用了。

慕运维8079593

引用文献资料:关键字和未引号标识符不区分大小写。因此:UPDATE MY_TABLE SET A = 5;可以等效地写成:uPDaTE my_TabLE SeT a = 5;引用标识符使其区分大小写,而未引用的名称总是折叠为小写:UPDATE "my_table" SET "a" = 5;  // equivalent to the above examples

一只斗牛犬

在PostgresSQL中,混合大小写或大写的列名必须双引号。因此,最好的惯例是用下划线来跟踪所有小的情况。
打开App,查看更多内容
随时随地看视频慕课网APP