你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Visual Studio Code 的 PostgreSQL 扩展中的对象资源管理器以树视图形式显示您的 PostgreSQL 服务器、数据库、架构和各个数据库对象。 可以浏览表、视图、函数和其他对象、跨架构搜索和生成 SQL 脚本,而无需离开编辑器。
Tip
使用对象资源管理器进行对象导航、搜索和脚本生成。 如果需要表关系的可视化关系图,请打开 架构可视化工具。
打开对象资源管理器
选择活动栏中的 PostgreSQL 图标以打开 PostgreSQL 视图。 还可以按 Ctrl+Alt+D(Windows/Linux)或 Cmd+Alt+D(macOS)。
该视图包含 “连接” 部分,该部分在可折叠树中显示服务器。 连接的服务器显示绿色图标;断开连接的服务器显示红色图标。 如果不存在连接,将显示 一个“添加连接” 节点来帮助你入门。
树层次结构
对象资源管理器以一致的层次结构组织数据库对象:
服务器→数据库→架构→对象集合
默认情况下,对象按架构分组。 在每个架构下,可以找到收集文件夹,例如:
- 表:展开表以查看其 列、 键、 索引、 约束和 触发器
- 视图
- 存储过程
- 函数:在单独的文件夹中包括标量值、表值和聚合函数
- 序列
- 类型:用户定义的类型和用户定义的表类型
集合文件夹的确切集取决于数据库中存在的对象,并由后端工具服务填充。
展开任何集合文件夹以查看各个对象。 对于表,您可以进一步查看列、键(主键、外键、唯一键)、索引、约束和触发器。
Note
该 pgsql.objectExplorer.expandTimeout 设置控制扩展在展开节点时等待的时间。 默认值为 45 秒。 如果使用需要较长时间加载的大型架构,请增加此值。
按架构分组
当启用 pgsql.objectExplorer.groupBySchema 设置时(默认情况下),数据库对象会显示在其所属架构节点下。 若要切换此行为,请执行以下操作:
- 打开 命令面板 (Ctrl+Shift+P / Cmd+Shift+P)。
- 运行启用按架构分组或禁用按架构分组。
禁用按架构分组时,对象集合文件夹将直接显示在数据库节点下,而不是显示在单个架构下。
连接和管理服务器
直接从 “连接” 树管理服务器连接。 “连接”部分顶部的工具栏和右键单击上下文菜单提供以下操作。
工具栏操作
| Button | 命令 | 说明 |
|---|---|---|
| + | 添加新连接 | 打开 连接对话框 以添加现有的 PostgreSQL 服务器。 |
| 服务器图标 | 创建新服务器 | 打开一个创建中心,可在其中部署新的Azure Database for PostgreSQL灵活服务器或创建基于 Docker 的服务器。 |
| 文件夹图标 | 创建服务器组 | 创建新的服务器组以组织连接。 |
| 筛选器图标 | 仅显示连接的服务器 / 显示已连接和断开连接的服务器 | 切换树中已断开连接的服务器的显示状态。 |
| 搜索图标 | 搜索对象 | 打开 搜索面板。 |
服务器上下文菜单
右键单击服务器节点以访问以下命令:
- 搜索对象:打开搜索面板,并将范围限定为此服务器。
- 编辑连接:使用此服务器的保存设置重新打开连接对话框。
- 断开连接:关闭活动连接。 服务器使用红色图标保留在树中,以便稍后可以重新连接。
- 删除:完全从 连接 树中删除服务器条目。
- 刷新:重新加载服务器的子节点。 在 VS Code 外部进行的架构更改后使用此代码。
Note
断开连接 仅在连接的服务器上显示。 删除可用于已连接和已断开连接的服务器。
数据库上下文菜单
右键单击要访问的数据库节点:
- 新建查询:打开已连接到此数据库的查询编辑器。
-
通过 PSQL 连接:打开一个集成终端会话,并通过
psql连接到该数据库。 有关详细信息,请参阅在终端中使用 psql。 - 可视化架构:打开此数据库的 架构可视化工具 。
- 搜索对象:打开搜索面板,并将搜索范围限定为此数据库。
右键单击架构节点以访问 可视化架构 (作用域为该架构)和 搜索对象。
服务器组
服务器组允许将连接组织到命名文件夹中。 当你在不同的环境或团队中处理许多服务器时,这非常有用。
- 在“连接”工具栏中选择文件夹图标(创建服务器组),或打开命令面板并运行 PGSQL:创建服务器组。
- 输入组的名称、可选说明和颜色。
- 选择“确定”。
该组在 “连接” 树中显示为文件夹。 可以将服务器节点拖到组中以重新组织它们。 若要修改组,请右键单击它,然后选择 “编辑服务器组”。 若要删除组,请右键单击并选择“ 删除”。
右键单击服务器组以使用 “添加新连接 ”或 “创建新服务器”直接添加到该组的连接。
搜索对象
如果需要在大型数据库中查找特定对象,请使用内置搜索,而不是手动扩展树节点。
通过选择 “连接” 工具栏中的搜索图标打开搜索面板。 还可以右键单击服务器、数据库或架构节点,然后选择 “搜索对象 ”以预填充范围。
搜索面板提供以下控件:
| 控制 | 说明 |
|---|---|
| 选择连接 | 选择要搜索的服务器连接。 下拉列表显示连接状态(已连接 / 已断开连接)以及主机、端口和用户等详细信息。 |
| 选择数据库 | 选择要在其中搜索的数据库。 |
| 所有架构 | 将结果限定为特定架构,或者保留为所有架构以搜索所有架构。 |
| 所有类型 | 按对象类型进行筛选。 选择表、视图、函数、存储过程和序列等类型的任意组合。 |
| 搜索对象... | 输入要与对象名称匹配的子字符串。 搜索不区分大小写。 |
选择 “搜索 ”以运行查询。 结果显示在具有对象名称、类型和对象路径列的网格中。 选择结果行以直接导航到树中的该对象。 “连接”树会自动扩展必要的节点。
为数据库对象编写脚本
可以直接从 “连接” 树为数据库对象生成 SQL 脚本。 右键单击可编写脚本的对象以访问脚本命令。
| 命令 | 适用对象 | 生成的 SQL |
|---|---|---|
| 选择前 1000 名 | 表、视图 |
SELECT 返回前 1,000 行结果的查询。 |
| 通过脚本创建 | 表, 视图, 架构, 存储过程, 函数, 触发器, 索引, 键, 角色, 类型 | 完整的 CREATE DDL 语句。 |
| 将脚本编写为 Drop | 与创建时的脚本相同 |
DROP 用于该对象的语句。 |
| 将脚本编写为 Alter | 视图、函数、存储过程 |
ALTER 用于该对象的语句。 |
| 将脚本作为可执行文件运行 | 存储过程 | 使用 CALL 或 SELECT 语句执行该例程。 |
每个生成的脚本都会在连接到源对象所在的数据库的新查询编辑器选项卡中打开。 可以立即查看、编辑和运行脚本。
Tip
选择前 1000 行是预览表中的数据的最快方式。 右键单击该表,然后选择 “选择前 1000 个 ”以在一个步骤中打开并运行查询。
复制名称
右键单击 “连接 ”树中的任何非文件夹对象,然后选择“ 复制名称 ”以将其限定名称复制到剪贴板。 还可以选择节点,然后按 Ctrl+C(Windows/Linux)或 Cmd+C(macOS)。
复制的名称使用 [database].schema.[object] 括号表示法格式,可以粘贴到 SQL 查询中。
对象资源管理器中的新查询
右键单击数据库节点并选择“ 新建查询 ”以打开已连接到该数据库的查询编辑器。 编辑器继承服务器连接并面向所选数据库,以便可以立即开始编写查询。
筛选树节点
某些集合文件夹支持筛选以缩小显示的对象范围。 当节点可筛选时,右键单击它并选择“ 筛选器 ”以打开筛选器面板。 可以在对象属性上设置 “包含”、“ 开头为”或“ 等于” 等条件,然后选择“ 确定 ”以应用。
筛选的节点在其标签后显示 (filtered) 。 若要删除筛选器,请右键单击节点,然后在筛选器面板中选择“ 清除 ”。
拖放
可以在服务器组之间拖动服务器节点以重新组织连接。 还可以将数据库对象(表、视图、函数、存储过程)从 Connections 树拖动到查询编辑器中,以将其架构限定的名称插入为文本。