【问题标题】:Postgresql autocomplete?Postgresql自动完成?
【发布时间】:2021-09-13 21:46:49
【问题描述】:

有什么东西可以为 PostgreSQL 提供自动完成功能吗?我正在寻找类似于 RedGate 的 SQLPrompt 的东西。目前正在使用 pgAdmin III 的查询工具,但愿意考虑其他查询编辑器。

【问题讨论】:

    标签: postgresql autocomplete


    【解决方案1】:

    psql 有它。我在服务器版本 8.2.6 上使用版本 8.2.7

    【讨论】:

    • 愚蠢的我。我从来没有停下来按 ctrl+space。
    • 我在 Ubuntu 上使用 psql 8.4.6 和服务器版本 8.4。 ctrl-space 对我不起作用,但 ctrl-tab 可以。
    • mac 用户需要安装 readline 库进行自动补全(BREW 命令:brew install readline)
    • psql 具有基本的自动完成功能。例如,如果您键入 SEL 并按 Tab,它将自动完成为 SELECT。但是,它似乎无法自动完成列名。
    【解决方案2】:

    您可能会喜欢pgcli,它为加入和其他不错的功能提供了完成。但是,它缺少一些 \* 助手,例如 \dF...

    cave> \d appellation
    +-----------+---------+-----------------------------------------------------------+
    | Column    | Type    | Modifiers                                                 |
    |-----------+---------+-----------------------------------------------------------|
    | id        | integer |  not null default nextval('appellation_id_seq'::regclass) |
    | libelle   | text    |  not null                                                 |
    | region_id | integer |                                                           |
    +-----------+---------+-----------------------------------------------------------+
    Indexes:
        "appellation_pkey" PRIMARY KEY, btree (id)
        "appellation_libelle_key" UNIQUE CONSTRAINT, btree (libelle)
    Foreign-key constraints:
        "appellation_region_id_fkey" FOREIGN KEY (region_id) REFERENCES region(id) ON DELETE CASCADE
    Referenced by:
        TABLE "vin" CONSTRAINT "vin_appellation_id_fkey" FOREIGN KEY (appellation_id) REFERENCES appellation(id) ON DELETE CASCADE
    
    Time: 0.006s
    cave> SELECT * FROM appellation JOIN  _
                                          region ON region.id = appellation.region_id     join      
                                          vin ON vin.appellation_id = appellation.id      join      
    

    在这个例子中,提出了两个对应于外键的连接。

    【讨论】:

      【解决方案3】:

      下面的简单回答:

      我花了很长时间试图在 psql 客户端和 SQL shell (psql) 客户端上使用 tab-complete。这就是你要做的。

      停止尝试并使用此处找到的客户端:pgcli

      我使用 pip 安装,使用 >pgcli -Upostgres 打开客户端,并输入与我安装 Postgresql 时创建的相同密码。制表符完成工作,我很高兴。

      【讨论】:

      • 欢迎来到 SO!请在发布答案之前查看它是否是现有答案。 (这个选项已经提到了)
      【解决方案4】:

      NetBeans 中对自动完成的支持令人惊叹。无限好于基本的 psql 恕我直言。它理解表别名,因此您可以执行以下操作:

      select * from users u join posts p where p.AUTOCOMPLETE

      遗憾的是不支持公用表表达式。

      【讨论】:

      • 突破:Intellij 支持 CTE,而且更好。我站得更正了。如果您只需要 DB 功能,DataGrip 是 Intellij-lite。
      【解决方案5】:

      from help file:

      要使用自动完成功能,请开始输入您的查询;当您希望查询编辑器建议查询中可能出现的下一个对象名称或命令时,请按 Control+Space 组合键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-20
        • 2012-06-12
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        相关资源
        最近更新 更多