为了账号安全,请及时绑定邮箱和手机立即绑定

PostgreSQL“列不存在”,但实际上确实存在

PostgreSQL“列不存在”,但实际上确实存在

慕妹3242003 2019-12-06 09:31:01
我正在编写一个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 ContinentFROM network.countriesWHERE Continent IS NOT NULLAND Continent <> ''LIMIT 5这实际上5从该列返回非空值。我不明白为什么在pgAdmin 4中确实出现“列不存在”错误。我可以看到有一个名称Network包含该表的架构,countries并且该表具有一列Continent,与预期的一样。由于所有列,模式和表名都是由应用程序本身检索的,所以我认为没有拼写或语义错误,因此PostgreSQL为什么会引起问题?在pgAdmin4中运行查询或使用建议的查询countries.Continent均有效。我的PostgreSQL版本是到目前为止的最新版本:$ psql --versionpsql (PostgreSQL) 9.6.1如何成功运行查询?
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

尝试将其用双引号引起来-如"Continent"查询中所示:


SELECT "Continent"

FROM network.countries

...


查看完整回答
反对 回复 2019-12-06
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

发生此问题的原因是在pgAdmin3中,因为表名不是表名,而是表名。例如 如果将用户显示为表名称,则表名称为“用户”。



查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 3351 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信