PostgreSQL 列名区分大小写吗?

2024-04-18

我有一个数据库表,persons在另一个团队传下来的 Postgres 中,有一个列名,"first_Name"。现在我尝试使用 PG Commander 来查询这个表的这个列名。

select * from persons where first_Name="xyz";

它只是返回

错误:列“first_Name”不存在

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


身份标识(包括列名)not双引号在 PostgreSQL 中被折叠为小写。创建的列名称双引号因此保留的大写字母(和/或其他语法违规)在其余生中必须用双引号引起来:

"first_Name" → "first_Name"  -- upper-case "N" preserved
"1st_Name"   → "1st_Name"    -- leading digit preserved
"AND"        → "AND"         -- reserved word preserved

But:

first_Name   → first_name    -- upper-case "N" folded to lower-case "n"
1st_Name     → Syntax error! -- leading digit
AND          → Syntax error! -- reserved word

Values(字符串文字/常量)包含在单引号:

'xyz'

So, yes, PostgreSQL 列名区分大小写(当用双引号引起来时):

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

标识符手册。 https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

我的长期建议是只使用合法的小写名称,因此不需要双引号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 列名区分大小写吗? 的相关文章

  • 在 Postgres 中使用 copy 命令时出错(错误:日期类型的输入语法无效:“”)

    我有一个 CSV 文件 我试图从中使用 PostgresCOPY命令以便从该 CSV 文件填充表 表列之一NEXT VISIT属于日期 data type CSV 文件中本应进入此日期列的某些相应字段具有空值 正在运行的复制命令如下所示 C
  • TSQL动态确定SP/Function的参数列表

    我想将通用日志记录片段写入存储过程集合中 我写这篇文章是为了对我们的前端用户体验进行定量测量 因为我知道前端软件使用了哪些 SP 以及它们的使用方式 我想在开始性能调优之前使用它来收集基线 然后显示调优的结果 我可以动态地从 PROCID
  • 按 IN 值列表排序

    我在 PostgreSQL 8 3 中有一个简单的 SQL 查询 它捕获了一堆评论 我提供一个sorted的值列表IN构造在WHERE clause SELECT FROM comments WHERE comments id IN 1 3
  • string_agg 没有函数与给定名称匹配

    我有关系数据库并想使用string agg 因为它似乎适合我的需要 I want product id quiz id 1 1 6 2 2 7 3 3 8 4 4 这是我的数据库 select quiz id product id last
  • 对于我的智力来说,太多的 order by、max、子查询

    我似乎无法解决这个问题 我确信它需要子查询 但我没有选择 我的大脑无法处理这个或其他事情 我需要帮助 小介绍 我有一个投注赔率网站 每 15 分钟 我都会从不同的博彩公司导入特定赛事的最新赔率 赢 平 输 或 1 X 2 赔率表的每一行都有
  • 带汇总总计和小计

    我有一个脚本可以生成几乎已经存在的结果集 我正在尝试获取小计和总计 我在年份栏中得到了小计 在最后得到了总计 我的目标是让最终结果显示 总计 而不是小计 请注意 由于汇总函数 我的最后一行 位置 也返回为空 SELECT YEAR COUN
  • postgres 与 docker compose 给出 FATAL: role "root" does not exit 错误

    我正在尝试在具有 docker 桌面的本地 Windows 计算机上使用 postgres 创建一个简单的演示 这是我的 yaml docker compose 文件 名为img yaml version 3 6 services post
  • Hibernate OneToMany 列表中的重复结果

    我已将 1 N 关系与 OneToMany 列表映射 但当我访问该列表时 由于 OUTER JOIN 结果会重复 映射如下所示 Entity public class Programmer ElementCollection fetch F
  • 如何在 PL/SQL 中将列添加到现有表之前检查列是否存在?

    在向 Oracle 数据库的表中添加列之前 如何添加简单的检查 我已经包含了用于添加列的 SQL ALTER TABLE db tablename ADD columnname NVARCHAR2 30 可以使用以下视图之一访问有关 Ora
  • Oracle 求两个时间戳的平均值

    我不明白这有多难 但我似乎无法在任何地方找到解决方案 它是针对日期完成的 但我看不到让它适用于时间戳 我正在尝试做 select avg last timestmp ref timestmp as average from param 它一
  • postgres 中简单更新查询出现死锁

    我正在使用 postgres 9 1 并在过度执行简单更新方法时出现死锁异常 根据日志 死锁是由于同时执行两个相同的更新而发生的 更新 public vm action info 设置last on demand task id 1 ver
  • 表名或列名不能以数字开头?

    我尝试创建名为15909434 user语法如下 CREATE TABLE 15909434 user 这当然会产生错误 然后 在我尝试用谷歌进行一些研究后 我发现了一篇很好的文章here http www informit com art
  • 将一个巨大的字符串参数传递给存储过程

    我有一个存储过程 它有两个参数 ID 和日期 当我将大文本传递给 ID 参数时 仅考虑部分文本 就好像文本在某个地方被剪切一样 我想这是因为当我执行存储过程时如下 exec proc 1 2 3 4 20100101 一切正常 但是当我使用
  • 在 TypeORM 单表继承中更新实体的类型

    有没有办法将继承实体的类型 在数据库中 更改为不同的实体类型 转换实体为uid from OldType to NewType await em update OldType uid uid entityTypeColumnName New
  • 如何在 Django ORM 中更改 PostgreSQL 的默认空排序行为

    默认情况下 PostgreSQL 将 NULL 值视为最高值 因此对于降序查询 首先对它们进行排序 对于升序查询 最后对它们进行排序 您可以通过指定 NULLS LAST 或 NULLS FIRST 在每个查询或创建索引时修改此行为 如何将
  • 我可以计算 SQL Server 中两个日期之间有多少个周末吗?

    我正在计算为一份报告租用设备的收入 其中 周末的招聘成本会比平日增加10 那么我如何计算两个日期之间有多少个周末呢 在报告查询中 我也不能使用DECLARE 有人可以帮我做到这一点吗 太感谢了 这应该有效 DECLARE StartDate
  • 使用java将数据插入mySQL表

    I have a predefined table in a mySQL database 我正在努力将从用户输入的数据保存到数据库中 但我似乎无法将任何数据保存在数据库中 使用以下代码 我尝试更新数据库的第一行 ID 1 到 OTHER
  • Postgresql - 确定从级联删除中删除哪些记录

    我继承了一个相当大的 postgresql 数据库 我们有一个每月运行的作业 用于备份现有数据库并使用我们收到的更新的供应商数据创建一个新数据库 目前有一个小问题 在不深入了解表设置 数据建模内容等细节的情况下 我相信它可以通过简单的删除查
  • Oracle SQL:从表中选择数据和分区名称并截断分区

    这是一个由两部分组成的问题 1 是否可以根据数据所在的分区使用 select 语句检索其名称ROWID或者其他一些标识符 eg SELECT DATA ID CATEGORY VALUE PARTITION NAME FROM MYTABL
  • 使用 MOVE 确定 DB RESTORE 的 SQL 数据路径

    我正在尝试编写一个自动恢复数据库备份的脚本 我知道我可以使用以下 RESTORE 命令 RESTORE DATABASE DBRestoredName FROM DISK N C path to backup bak WITH FILE 1

随机推荐