DBeaver可通过右键已连接的数据库节点选择“数据库信息”查看基础元数据,或展开schema后右键表/视图等选择“编辑”查看结构级元数据;元数据默认缓存,需手动刷新(F5或Ctrl+Shift+R)同步变更,且字段注释显示依赖数据库版本及权限配置。

直接看数据库元数据,不用写 SQL —— DBeaver 自带的元数据视图就能满足绝大多数需求,但得知道在哪点、点什么、以及为什么有时点完没反应。
怎么打开数据库元数据面板
右键点击左侧导航器中的具体数据库连接节点(不是“数据库”总节点,也不是某个 schema),选择 数据库信息。这个操作会弹出一个只读窗口,里面包含版本号、驱动名、连接 URL、默认字符集等基础元数据。
注意:如果右键菜单里没有 数据库信息,说明你点错了位置 —— 必须是已连接成功的「数据库连接」那一行(图标带小锁或绿色圆点),而不是展开后的 schemas 或 tables 节点。
- MySQL 连接后看到的
VERSION()值就来自这里 - Oracle 连接会显示
DB_NAME和GLOBAL_NAME - PostgreSQL 显示的是
server_version和server_encoding
怎么查看表/列/约束等结构级元数据
展开数据库连接 → 展开某个 schema(如 public 或 information_schema)→ 右键点击 tables、views、procedures 等节点,选择 编辑 或 属性,就能看到对应对象的完整元数据。
例如右键一张表 → 编辑 → 切换到 列 标签页,能看到每列的 DATA_TYPE、NULLABLE、COLUMN_DEFAULT,甚至注释(REMARKS);切到 约束 标签页,主键、外键、唯一约束一目了然。
- MySQL 的
information_schemaschema 本身可展开,但它的表是只读视图,双击打不开数据,只能看结构 - Oracle 的
USER_TABLES和ALL_TAB_COLUMNS是真实可查的系统视图,DBeaver 会自动映射为可浏览节点 - 字段注释是否显示,取决于数据库是否存了
COMMENT ON COLUMN(PostgreSQL/Oracle 支持,MySQL 8.0+ 才支持列注释)
为什么刷新后元数据还是旧的
DBeaver 默认缓存元数据(比如表结构、列定义),即使你在数据库里执行了 ALTER TABLE ADD COLUMN,DBeaver 的左侧树和表编辑面板也不会自动更新 —— 这不是 bug,是性能优化机制。
要强制同步最新结构,必须手动触发刷新:
- 对单张表:右键该表 →
刷新(快捷键F5) - 对整个 schema:右键
tables节点 →刷新 - 对整个连接:右键数据库连接节点 →
刷新全部(Ctrl+Shift+R)
特别注意:刷新 和 刷新全部 的区别在于后者会清空所有缓存项(包括视图、存储过程、函数等),而前者只重载当前节点下的子项。如果你刚删了一个视图却还在列表里,大概率是因为只刷了 tables 节点,漏掉了 views 节点。
用 SQL 查元数据时要注意驱动兼容性
虽然 DBeaver 提供图形化入口,但有些元数据只能靠 SQL 查,比如 MySQL 的 SHOW CREATE TABLE、Oracle 的 DBA_SOURCE、SQL Server 的 sys.columns。这时候得留意 JDBC 驱动权限和视图访问控制。
- 普通用户连接 MySQL,默认查不到其他库的表结构,
information_schema里也只返回自己有权限的库 - Oracle 用户若没授予
SELECT_CATALOG_ROLE,查DBA_*视图会报ORA-00942: table or view does not exist - PostgreSQL 中,
pg_catalog下的系统表默认对所有用户可读,但pg_stat_*类视图需要pg_read_all_stats权限
遇到查不到、报错或字段为空,先确认当前登录用户在数据库侧的权限,再检查 DBeaver 是否用了正确的驱动版本(比如 Oracle 19c 推荐用 ojdbc11,而非 ojdbc8)。











