当前位置: 首页 > 知识库问答 >
问题:

PostgreSQL列名是否区分大小写?

呼延修然
2023-03-14

我有一个db表说,人员在Postgres传给另一个团队,有一个列名说,"first_Name"。现在我试图使用PG指挥官来查询这个列名称上的表。

select * from persons where first_Name="xyz";

然后它就回来了

错误:列"first_Name"不存在

不确定我是在做一些愚蠢的事情,还是有解决这个问题的方法,我错过了?

共有3个答案

蒋招
2023-03-14

混合大小写或大写的列名必须在PostgresQL中双引号引用。所以,最好的惯例是在所有小案例后面加下划线。

阎咏思
2023-03-14

引用留档:

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

UPDATE MY_TABLE SET A = 5;

可以等效地写为:

uPDaTE my_TabLE SeT a = 5;

您也可以使用带引号的标识符来编写:

UPDATE "my_table" SET "a" = 5;

引用标识符使其区分大小写,而未加引号的名称总是折叠成小写(不像SQL标准中未加引号的名称折叠成大写)。例如,PostgreSQL认为标识符FOOfoo"foo"是相同的,但是"Foo""FOO"与这三者不同,并且彼此不同。

如果你想编写便携式应用程序,建议你总是引用一个特定的名字,或者永远不要引用它。

仰欣悦
2023-03-14

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

"first_Name"

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

'xyz'

因此,是的,PostgreSQL列名区分大小写(双引号时):

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

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

我的长期建议是只使用合法的小写名称,这样就不需要重复引用。

 类似资料:
  • 问题内容: 我在另一个列名称为的团队的Postgres中有一个db表说。现在,我试图使用PG指令在此列名上查询该表。 它只是返回 错误:列“ first_Name”不存在 不知道我是在做傻事还是对我遗失的问题有解决方法? 问题答案: 所有未加双引号的 标识符 (包括列名)在PostgreSQL中被折叠为小写。用双引号创建的列名并因此保留了大写字母(和/或其他语法违规),必须在余下的时间将双引号引起

  • 问题内容: MySQL中的表名是否区分大小写? 在Windows开发机器上,我拥有的代码能够查询我的表,这些表看起来都是小写的。当我在数据中心中部署到测试服务器时,表名似乎以大写字母开头。 我们使用的服务器都在Ubuntu上。 问题答案: 一般来说: 数据库和表名在Windows中不区分大小写,在大多数Unix版本中都不区分大小写。 在MySQL中,数据库与data目录中的目录相对应。数据库中的每

  • 问题内容: HTML是否区分大小写? 在一个示例中,我正在使用它说: 还是会有所不同(或根本没有)? 问题答案: 否,但是将HTML标记保持小写被认为是一种好习惯。

  • 问题内容: 我正在研究一些代码,并找到了对的调用。PHP对函数名称是否区分大小写?我记得在某处读过这篇文章,但似乎找不到任何参考。 问题答案: 我在此引用: 注意:函数名称不区分大小写,尽管调用函数通常是一种很好的形式,因为它们出现在声明中。 因此,它看起来像用户定义的函数是不区分大小写,有一个投票下PHP5区分大小写制作功能/对象。

  • 问题内容: 我正在努力理解为什么我的基本href似乎区分大小写。我有一个带有基本href的页面,并利用了angularjs路由。 的HTML: js: 如果我导航到http://www.example.com/Foo/,那就很好。但是,当我导航到http://www.example.com/foo/时,出现一个角度错误: 如果有帮助/有所作为,则将站点托管在IIS上并使用MVC 4。 问题答案:

  • 问题内容: 我到处都读到CSS不区分大小写,但是我有这个选择器 当我像这样在HTML中使用时,它会被拾取 如果我这样改变上面的选择器 这样就不会拾取样式。 问题答案: CSS选择器通常不区分大小写;这包括类和ID选择器。 但是HTML类名 _是_区分大小写的(见属性定义),这就是导致你的第二个例子不匹配。HTML5中没有更改。1个 这是因为选择器的区分大小写取决于文档语言的含义: 在ASCII范围