【发布时间】:2021-09-13 21:46:49
【问题描述】:
有什么东西可以为 PostgreSQL 提供自动完成功能吗?我正在寻找类似于 RedGate 的 SQLPrompt 的东西。目前正在使用 pgAdmin III 的查询工具,但愿意考虑其他查询编辑器。
【问题讨论】:
有什么东西可以为 PostgreSQL 提供自动完成功能吗?我正在寻找类似于 RedGate 的 SQLPrompt 的东西。目前正在使用 pgAdmin III 的查询工具,但愿意考虑其他查询编辑器。
【问题讨论】:
psql 有它。我在服务器版本 8.2.6 上使用版本 8.2.7
【讨论】:
SEL 并按 Tab,它将自动完成为 SELECT。但是,它似乎无法自动完成列名。
您可能会喜欢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
在这个例子中,提出了两个对应于外键的连接。
【讨论】:
下面的简单回答:
我花了很长时间试图在 psql 客户端和 SQL shell (psql) 客户端上使用 tab-complete。这就是你要做的。
停止尝试并使用此处找到的客户端:pgcli
我使用 pip 安装,使用 >pgcli -Upostgres 打开客户端,并输入与我安装 Postgresql 时创建的相同密码。制表符完成工作,我很高兴。
【讨论】:
NetBeans 中对自动完成的支持令人惊叹。无限好于基本的 psql 恕我直言。它理解表别名,因此您可以执行以下操作:
select * from users u join posts p where p.AUTOCOMPLETE
遗憾的是不支持公用表表达式。
【讨论】:
要使用自动完成功能,请开始输入您的查询;当您希望查询编辑器建议查询中可能出现的下一个对象名称或命令时,请按 Control+Space 组合键。
【讨论】: