有没有为 PostgreSQL 提供自动补全功能的东西? 我正在寻找类似于 RedGate 的 SQLPrompt 的东西。 目前使用 pgAdmin III 的查询工具,但愿意考虑其他查询编辑器。
psql 有它。我在服务器版本 8.2.6 上使用版本 8.2.7
您可能喜欢 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
在此示例中,提出了与外键相对应的两个连接。
简单回答如下:
我花了很长时间尝试让 tab-complete 在 psql 客户端和 SQL shell (psql) 客户端上工作。这就是你要做的。
停止尝试并使用此处找到的客户端:pgcli
我使用 pip 安装,使用
>pgcli -Upostgres
打开客户端,并输入与安装 Postgresql 时创建的相同密码。制表符补全功能有效,我可以开始了。
NetBeans 对自动完成的支持令人惊叹。恕我直言,比基本的 psql 好得多。它理解表别名,因此您可以执行以下操作:
从用户中选择 * u 加入帖子 p 其中 p.AUTOCOMPLETE
遗憾的是不支持通用表表达式。
要使用自动完成功能,请开始输入您的查询;当您希望查询编辑器建议查询中下一个可能出现的对象名称或命令时,请按 Control+Space 组合键。
关键字自动补全 对于关键字,只需输入几个字符,然后按 Control + 空格键组合即可。