PostgreSQL列“foo”不存在

我有一个表,它有20个整数列和1个文本列名为’foo’

如果我运行查询:

SELECT * from table_name where foo is NULL

我收到错误:

ERROR:  column "foo" does not exist

我已经检查自己,他的专栏确实存在。如果我做这样的事情:

SELECT * from table_name where count is NULL

结果输出显示“foo”作为列之一….
我猜想我必须在查询中做一些特别的事情,因为foo是一个文本列…

感谢您的帮助(POSTGRESQL 8.3)

您不小心创建了具有尾部空格的列名称,并且可能是phpPGadmin创建了带有双引号的列名称:
create table your_table (
    "foo " -- ...
)

那会给你一个看起来像是被称为foo的列,但你必须双引号,并包含空间,当你使用它:

select ... from your_table where "foo " is not null

最好的做法是使用PostgreSQL的小写无引号列名。在phpPGadmin中应该有一个设置,它会告诉它不要引用标识符(例如表和列名),但是唉,我不使用phpPGadmin,所以我不在那个设置(即使它存在)。

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...