当前位置:  开发笔记 > 数据库 > 正文

PostgreSQL"列不存在"但实际上它确实存在

如何解决《PostgreSQL"列不存在"但实际上它确实存在》经验,为你挑选了1个好方法。

我正在编写一个Java自动构建和运行SQL查询的应用程序.对于许多表我的代码工作正常,但在某个表上它会因抛出以下异常而卡住:

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "continent" does not exist
  Hint: Perhaps you meant to reference the column "countries.Continent".
  Position: 8

已运行的查询如下:

SELECT Continent
FROM network.countries
WHERE Continent IS NOT NULL
AND Continent <> ''
LIMIT 5

这实质上5从列中返回非空值.

我不明白为什么我在pgAdmin 4中明显地出现"列不存在"错误.我可以看到有一个名称Network包含表的模式countries,该表有一个名称Continent与预期一样的列.

由于应用程序本身检索了所有列,模式和表名称,我认为没有拼写或语义错误,为什么PostgreSQL会导致问题呢?在pgAdmin4中运行查询也不使用建议countries.Continent的工作.

我的PostgreSQL版本是迄今为止的最新版本:

$ psql --version
psql (PostgreSQL) 9.6.1

如何成功运行查询?



1> Eugene Lisit..:

尝试将其变为双引号 - 就像"Continent"在查询中一样:

SELECT "Continent"
FROM network.countries
...

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有