Postgresql - 为什么我无法正确地对模式进行查询?

时间:2016-06-12 08:28:21

标签: sql postgresql schema navicat

大家好,希望这很简单。我只采用了一个简单的SQL课程,现在正尝试将其应用到一个真正的postgres数据库。我遇到的直接困难是处理模式级别的事情(多个模式),而我所学到的只是处理单个模式中多个表之间的查询。

我正在尝试one step more than this questioner并按模式进行过滤,但事情对我来说非常奇怪

这就是我的意思。此查询返回我期望的结果(并且提升straight from this SO example):

this is fine so far but the syntax highlighting is perhaps pointing to a problem

所以鉴于我的sql培训到目前为止,我想我可以采取输出并进一步完善它。

select table_name
from (select table_name, table_schema from information_schema.columns where column_name = 'user_id')
where table_schema = "web_app"

这样做会产生一个非常奇怪的错误:

enter image description here

为什么它将某个字段视为一个列?这是derived_table1是什么? (大概是复合查询?)

在极不可能的情况下,这是一个软件问题,我正在使用Navicat premium 9.1.2并连接到amazon redshift。

2 个答案:

答案 0 :(得分:0)

  • 与颜色相关,我认为它与您的工具有关,关键字的颜色如下。 '表名'似乎被视为关键字。检查关键字列表并在必要时进行更正。
  • 您撰写的查询错误。请删除' table_schema'。
  • 如果从select中选择,则数据库引擎会将返回的表列表视为派生。该列表是在运行时计算的,并且优化这些查询并不容易。

答案 1 :(得分:0)

对于具有相同问题的未来人员,请参阅a_horse_with_no_name的评论。这是我的问题的正确答案。