postgresql PgAdmin列命名查询语法初学者问题

b91juud3  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(99)

我正在努力在PgAdmin中编写甚至简单的查询。我已经尝试解决这个问题有一段时间了,但我无法了解为什么pgAdmin的行为像它一样:
我正在运行一个非常简单的查询:
第一个月
对于此查询,我看到以下错误消息:
错误:列“organizationid”不存在行1:SELECT * FROM public.“Sync”WHERE organizationId =“cljybe6z...^提示:也许你想引用列“Sync.organizationId”。
在此示例中,似乎不遵守“organizationId”的大小写。然而,在引号中插话也没有帮助。
写入“Sync.organizationId”也会产生错误。
这里有几件事我不明白:1.)如何正确引用列?2.)为什么我必须指定表沿着模式public."Sync",而不能像在psql中那样只写sync?
我知道这可能是一个初学者的问题,但我真的被困在这个很长一段时间。

ruarlubt

ruarlubt1#

了解PostgreSQL如何处理名称和内容的一些基本规则:

  • 默认情况下,所有名称都是小写
  • 除非创建对象名称时在其两边使用双引号
  • 避免双引号“像瘟疫一样
  • 内容必须在单引号内
  • 除非您使用美元报价为您的内容,如$$或$xx$

现在您的查询:SELECT * FROM public.“Sync”WHERE organizationId =“xxx”;
我个人对这个的评论:

  • 表Sync永远不应该使用双引号以大写形式创建
  • 现在你搬起石头砸了自己的脚,你必须始终使用双引号围绕这个对象名称
  • 我会将表名改为小写,这样就不需要在任何地方使用双引号
  • xxx是内容,必须在单引号'xxx'之间
  • 我不建议使用美元报价,只有在极少数情况下

相关问题