You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VScode的SQLtools扩展如何通过同一连接访问多个数据库?

SQLTools 同一连接下展示多个PostgreSQL数据库的实现方案

PostgreSQL原生不支持单个连接会话同时绑定多个数据库,你当前尝试在database字段填写多个数据库名的配置方式无法生效。以下是两种可实现你需求的方案:

方案1:使用SQLTools连接分组功能(推荐,无额外数据库配置)

你可以将多个数据库的连接配置归到同一个分组下,即可在侧边栏展示为同一个根节点,符合你要的simple_bank等数据库展示在同一root节点下的效果,配置示例如下:

{
  "sqltools.connections": [
    {
      "previewLimit": 50,
      "server": "localhost",
      "port": 5432,
      "driver": "PostgreSQL",
      "name": "root",
      "username": "sampleuser",
      "password": "samplepasswd",
      "database": "root",
      "group": "DataBase"
    },
    {
      "previewLimit": 50,
      "server": "localhost",
      "port": 5432,
      "driver": "PostgreSQL",
      "name": "database1",
      "username": "sampleuser",
      "password": "samplepasswd",
      "database": "database1",
      "group": "DataBase"
    },
    {
      "previewLimit": 50,
      "server": "localhost",
      "port": 5432,
      "driver": "PostgreSQL",
      "name": "database2",
      "username": "sampleuser",
      "password": "samplepasswd",
      "database": "database2",
      "group": "DataBase"
    },
    {
      "previewLimit": 50,
      "server": "localhost",
      "port": 5432,
      "driver": "PostgreSQL",
      "name": "simple_bank",
      "username": "sampleuser",
      "password": "samplepasswd",
      "database": "simple_bank",
      "group": "DataBase"
    }
  ]
}

配置后侧边栏的SQLTools列表会出现名为DataBase的根分组,展开后即可看到所有归到该分组下的数据库连接,点击即可切换访问。

方案2:使用postgres_fdw扩展实现单连接跨库访问

如果你需要在单个连接内直接查询多个数据库的内容,可以通过PostgreSQL的外部数据包装器扩展postgres_fdw将其他数据库的表映射到你默认连接的数据库中,操作步骤如下:

  1. 连接到你要作为主入口的数据库(比如root库),执行命令安装扩展:
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
  1. 创建外部服务器,指向本地PostgreSQL服务:
CREATE SERVER postgres_local
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'localhost', port '5432', dbname 'simple_bank');
  1. 创建用户映射,将你的数据库用户映射到外部服务器的访问权限:
CREATE USER MAPPING FOR sampleuser
SERVER postgres_local
OPTIONS (user 'sampleuser', password 'samplepasswd');
  1. 导入外部数据库的表到当前库的指定schema下(比如你可以新建一个simple_bank schema来存放映射表):
CREATE SCHEMA IF NOT EXISTS simple_bank;
IMPORT FOREIGN SCHEMA public
FROM SERVER postgres_local
INTO simple_bank;

配置完成后,你连接root库时就能在simple_bank schema下看到对应数据库的所有表,直接执行查询即可,无需切换连接。


内容的提问来源于stack exchange,提问作者Vincent Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:15:04