我正在编写一个 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
如何成功运行查询?
原文由 BullyWiiPlaza 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试将其放入双引号中 - 例如
"Continent"
在查询中: