为了账号安全,请及时绑定邮箱和手机立即绑定

PostgreSQL列名是否区分大小写?

PostgreSQL列名是否区分大小写?

肥皂起泡泡 2019-06-09 15:29:36
PostgreSQL列名是否区分大小写?我有个数据库表,persons在Postgres中,另一个列名为:"first_Name"..现在,我试图使用PG指挥官来查询这个列名上的表。select * from persons where first_Name="xyz";它又回来了错误:列“First_name”不存在不知道我是不是在做一些愚蠢的事情,还是有一个解决办法来解决我错过的这个问题?
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

在PostgreSQL中,所有没有双引号的标识符(包括列名)都折叠为小写。用双引号创建,从而保留大写字母(和/或其他语法违规)的列名在其余生中必须双引号。所以,,PostgreSQL列名区分大小写:

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

还修正了周围不正确的双引号。'xyz'..值(字符串文本)括在单引号.

看这里的手册。

我的建议是只使用合法的、小写的名字,这样就不需要双重引用了。


查看完整回答
反对 回复 2019-06-09
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

引用文献资料:

关键字和未引号标识符不区分大小写。因此:

UPDATE MY_TABLE SET A = 5;

可以等效地写成:

uPDaTE my_TabLE SeT a = 5;

引用标识符使其区分大小写,而未引用的名称总是折叠为小写:

UPDATE "my_table" SET "a" = 5;  // equivalent to the above examples


查看完整回答
反对 回复 2019-06-09
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

在PostgresSQL中,混合大小写或大写的列名必须双引号。因此,最好的惯例是用下划线来跟踪所有小的情况。


查看完整回答
反对 回复 2019-06-09
  • 3 回答
  • 0 关注
  • 1875 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信