我正在编写一个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
如何成功运行查询?
catspeake
qq_笑_17
相关分类