当前位置: 首页 > 知识库问答 >
问题:

PostgreSQL“列不存在”,但它确实存在

秦景同
2023-03-14

我正在编写一个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,该表有一个名为containment的列。

既然所有的列、模式和表名都是由应用程序本身检索的,我不认为存在拼写或语义错误,那么为什么PostgreSQL会导致问题呢?在pgAdmin4中运行查询,也不要使用建议的国家/地区。欧洲大陆正在发挥作用。

我的PostgreSQL版本是目前最新的:

$ psql --version
psql (PostgreSQL) 9.6.1

如何成功运行查询?

共有3个答案

终逸仙
2023-03-14

这个问题发生在postgres中,因为表名不是tablename,而是“tablename”。例如,如果将用户显示为表名,则表名为“user”。

看看这个:

阳英朗
2023-03-14

在使用SQLAlchemy环境时,我在SQL中遇到了如下错误:,

   db.session.execute(
    text('SELECT name,type,ST_Area(geom) FROM buildings WHERE type == "plaza" '))

错误:“广场”列不存在

好吧,我改了==by=,错误仍然存在,然后我交换了引号,如下所示。奏效了。奇怪!

.... 
text("SELECT name,type,ST_Area(geom) FROM buildings WHERE type = 'plaza' "))
薛墨一
2023-03-14

试着在查询中使用双引号-如"大陆"

SELECT "Continent"
FROM network.countries
...
 类似资料:
  • 问题内容: 我正在编写一个用于自动构建和运行SQL查询的应用程序。对于许多表,我的代码工作正常,但在某些表上会抛出以下异常而卡住: 已运行的查询如下: 这实际上从该列返回非空值。 我不明白为什么在pgAdmin 4中 确实出现“列不存在”错误。我可以看到有一个名称包含该表的架构,并且该表具有一个按预期方式命名的列。 由于所有列,模式和表名均由应用程序本身检索,所以我认为没有拼写或语义错误,因此Po

  • 问题内容: 有人知道您的表确实存在时,在什么条件下会收到错误? 我在5台服务器上使用了相同的代码,但我最近租用的服务器上只有一个显示此错误,因此我怀疑这可能是某种设置或安装错误。我可以从命令行执行我的sql语句。很显然,我也可以从命令行查看该表。建立连接时,我没有任何连接错误(我正在使用mysqli,btw)。 任何帮助,将不胜感激。 确切查询: 问题答案: 基本上,我认为我遇到的问题是由于密码哈

  • 我有一个表,它有20个整数列和一个名为“foo”的文本列 如果我运行查询: 我得到一个错误: 我已经核实过他的专栏确实存在。如果我这样做: 结果输出将“foo”显示为一列。。。。我猜我必须在查询中做一些特殊的事情,因为foo是一个文本列。。。 感谢您的帮助(POSTGRESQL 8.3)

  • 我正在运行一个简单的select查询: 并得到以下错误: 错误:列return_part_i.cntrctrmntnind不存在第1行:从return_part_i.cntrctrmntnind中选择return_part_i.cntrctrmntnind…^提示:也许你想引用“return_part_i.cntrctrmntnind”一栏。SQL状态:42703字符:8 我尝试了使用和不使用表标

  • 每当我调试应用程序时,就会出现一个错误,,应用程序也不会启动。 更新Android Studio后,此错误开始发生。 经过大量搜索,我尝试了不同的解决方案。这包括: 降级Android Studio(它开始给出插件错误,我不想不能使用新的Android Studio) 尝试了这个解决方案却没有成功 这是一个不同的问题,但有可能解决我的问题。它也不起作用 提到这个问题 任何帮助将不胜感激。

  • 当我执行以下代码时(一个更大的例子,归结为要点) 我得到这个错误: Err: MongoError:错误处理查询: ns=locationdemo.locationsTree: GEONEAR field=loc maxdist=600000 is近球体=0排序:{}Proj:{}planner返回错误:无法找到$Geo近查询的索引