结果集不更新需手动刷新:右键选“Refresh Data”并勾选“Refresh metadata”才能同步新增列等结构变更;若无效,应右键表选“Refresh object”或执行“REFRESH DATABASE METADATA;”。

结果集不更新?不是数据没变,而是DBeaver默认不自动刷新元数据或数据本身。 它只在首次执行SQL时加载一次,后续增删改查不会自动同步——必须手动触发或显式启用定时刷新。
结果集右键“Refresh Data”不生效的常见原因
这个操作只刷新当前结果集的数据行,但不会重新查询表结构(比如新增列、字段类型变更)。若你刚执行了 ALTER TABLE,却看不到新列,问题就出在这里。
- 未勾选“Refresh metadata”:右键 → “Refresh Data” → 弹窗中必须手动勾选该选项,否则只重载已有字段的数据
- 结果集处于“只读模式”:某些连接配置(如只读事务、连接池设置)会阻止元数据重载,此时勾选也无效
- 驱动限制:PostgreSQL 的
pgjdbc驱动在某些版本下对ResultSetMetaData刷新支持不完整,建议升级到 42.7+ 版本
如何真正刷新元数据(含新增列、约束、索引)
右键“Refresh Data”只是局部刷新;要让 DBeaver 重新读取整张表的定义,得走更底层的缓存清理路径:
- 在数据库导航树中,右键对应表 → 选择“Refresh object”(不是“Refresh”)
- 或选中该表后按快捷键
Ctrl+5(Windows/Linux)/Cmd+5(macOS),这是专门针对对象元数据的刷新快捷键 - 若仍不显示新字段,可尝试在 SQL 编辑器中执行:
REFRESH DATABASE METADATA;—— 这会强制重建整个连接的元数据缓存
让结果集自动刷新数据(不含元数据)
适合监控表内容变化(如日志表、任务状态表),但注意:它不会检测结构变更,只轮询查询相同 SQL 的结果。
- 打开结果集后,点击结果面板右上角刷新按钮
⟳旁的小三角 ▼ - 从下拉菜单中选择间隔(如“5 sec”、“30 sec”),或选“Custom…”自定义秒数
- 成功启用后,按钮旁会出现
⏰图标,且每次刷新会在状态栏显示“Auto-refresh: X sec” - ⚠️ 注意:自动刷新期间无法编辑该结果集,且若 SQL 含变量(如
WHERE created_at > ?),将始终使用首次执行时绑定的值
为什么 F5 或工具栏刷新按钮对结果集无效
F5 和顶部工具栏的 ⟳ 按钮作用对象是数据库导航树,不是结果集面板。它们刷新的是左侧对象列表(库、表、视图等),与下方 SQL 执行结果完全无关。
混淆这点是新手最常踩的坑——以为点了 F5 就等于刷新了刚查出来的那几行数据,其实什么都没发生。结果集的刷新入口永远在结果面板自身右键菜单或右上角控件区。


















