我正在编写一个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
如何成功运行查询?
尝试将其变为双引号 - 就像"Continent"
在查询中一样:
SELECT "Continent" FROM network.countries ...