当前位置:首页 > 文章列表 > 文章 > 软件教程 > DBeaver 数据编辑器提交前怎样查看待执行变更

DBeaver 数据编辑器提交前怎样查看待执行变更

来源:17golang原创 2026-11-14 04:17:22 0浏览 收藏

DBeaver 数据编辑器中,想在最终提交前看清“到底会改哪些行”,关键是把连接切到 Manual commit,先用 Save 旁边的下拉菜单生成 SQL 预览,再打开 Pending transactions 查看当前会话的未提交操作。确认目标、条件和新值都正确后点击 Commit;发现误改则点击 Rollback。

官方地址:https://dbeaver.com/

官方文档:https://dbeaver.com/docs/dbeaver/

最稳妥的检查顺序是“Manual commit → Generate Script → Save → Pending transactions → Commit/Rollback”。其中 Generate Script 负责看将要执行的 SQL,Pending transactions 负责确认当前事务里已经执行过、但还没有最终提交的操作。

先分清三个容易混淆的状态

DBeaver 的数据编辑器至少有三层状态:单元格刚改但还没有保存、编辑器已经把修改语句发给数据库、当前事务已经 Commit。标题中的“提交前”最好指最后一步 Commit 之前,因为只要连接处于手动提交模式,修改语句执行后仍然可以从当前事务中回滚。

状态你能做什么对应按钮
编辑器有未保存改动继续修改或丢弃本次编辑Save / Cancel
语句已执行但事务未结束查看操作、最终提交或撤销Pending transactions / Commit / Rollback
Auto-commit每条语句执行后立即提交,通常不能再回滚Auto-commit

1. 切换 Manual commit,再编辑目标单元格

打开目标表的 Data 标签,先看数据编辑器顶部工具栏的事务模式。点击事务模式按钮,选择 Manual commit。不要在需要逐条审核的任务中直接使用 Auto-commit,因为自动提交会让每条数据修改立即生效。

接着双击目标单元格,或者右键单元格选择 Inline edit,输入新值后按回车并移到另一个单元格。此时底部工具栏的 Save 和 Cancel 会变为可用。这里先不要急着点击 Save,先进行 SQL 预览。

DBeaver 数据编辑器处于 Manual commit 模式并打开 Save 下拉菜单预览 SQL 的原创界面说明图
图1:Manual commit 下的原创界面说明图,Save 下拉菜单进入 Generate Script,先看本次编辑将执行的 SQL。

2. 从 Save 下拉菜单预览待执行 SQL

在数据编辑器底部工具栏找到 Save 按钮,点击它右侧的下拉箭头,选择 Generate Script。DBeaver 会打开 Preview Changes 窗口,把当前编辑转换成可阅读、可复制的 SQL。

预览时重点看四件事:

  1. 目标表是否是当前要修改的表,避免编辑器标签页切错。
  2. WHERE 条件是否能唯一定位目标行,尤其要留意没有唯一键的表。
  3. 新值、NULL 值和字段类型是否符合预期,日期和字符串不要只看显示格式。
  4. 新增、删除或批量修改的语句数量是否与本次编辑动作一致。

如果预览中的 SQL 不对,关闭 Preview Changes 回到网格,用 Cancel 丢弃尚未保存的编辑,再重新选择目标行。Generate Script 是预览动作,不等于已经把修改提交到数据库。

3. 保存编辑后打开 Pending transactions

确认预览无误后点击 Save,让数据编辑器执行本次修改。随后在当前 SQL Editor 或 Data Editor 的顶部工具栏,点击 Transaction Log 旁边的箭头,选择 Pending transactions。

弹窗左侧的 Connections 列表显示连接和 pending / total 计数,右侧的 Transactions 列表显示选中连接里的操作。默认只显示有未提交事务的连接;需要查看其它活动连接时勾选 Show all connections。

如果想扩大核对范围,可以勾选 Show previous transactions 查看当前会话的历史事务,或勾选 Show all queries 把非事务查询也列出来。计数不一定等于你手工执行的语句数,因为 DBeaver 自己的内部查询也可能被统计。

DBeaver Pending transactions 窗口显示连接计数和事务列表的原创界面说明图
图2:Pending transactions 的原创结果说明图,左侧看 pending/total 计数,右侧核对当前连接的事务操作。

4. 核对后选择 Commit 或 Rollback

在 Pending transactions 中选中有未提交变更的连接,逐条对照操作列表。确认表、条件和数量都正确后点击 Commit,当前事务中的待处理变更会一起应用;如果发现误改、目标连接不对或预览与预期不一致,点击 Rollback,撤销当前事务中的已执行变更。

也可以直接使用主工具栏的 Commit 或 Rollback。成功后 Pending 窗口中的对应按钮会被禁用。提交后如需看到最新结果,再点击数据编辑器的 Refresh。

注意 Cancel 和 Rollback 不是一回事:Cancel 只丢弃还没有点击 Save 的网格编辑;Rollback 处理的是已经执行到当前事务、但尚未最终提交的数据库变更。

5. 检查自动提交设置,避免预览流程失效

如果每次编辑后都没有可回滚的事务,先检查连接是否处于 Auto-commit。需要稳定复核时,在连接工具栏切换到 Manual commit,或进入 Edit Connection → Connection settings → Initialization,把默认事务模式设为 Manual commit。

还要检查 Preferences → Editors → Data Editor 中的 Commit session on value edit apply。这个选项会在应用标量值编辑后自动提交事务;编辑大字段时也要留意同一页的 Commit session on content edit apply。如果你的目标是手工预览并统一提交,应关闭会自动结束事务的选项。

DBeaver 的 Smart commit 可以在自动提交模式下遇到数据修改时切换到手动提交,但它改变的是事务模式,不会替代你对 Preview Changes 和 Pending transactions 的核对。

常见问题

为什么 Pending transactions 里没有记录?

常见原因是连接处于 Auto-commit,或者你还没有点击 Save 让编辑器执行修改。也可能已经 Commit/Rollback,当前事务自然变成空的。

Preview Changes 能不能代替 Rollback?

不能。Preview Changes 发生在执行前,Rollback 发生在语句已经执行但事务仍开放时。一个用于提前检查 SQL,一个用于撤销当前事务。

为什么一个 UPDATE 让计数增加不止一条?

Pending transactions 的计数包含当前事务里的用户查询和 DBeaver 内部查询,因此不要只按手工点击次数解释计数;应以右侧事务列表中的目标操作和连接状态为准。

速查结论

需要“改之前看 SQL”,走 Save → Generate Script;需要“执行之后看事务”,走 Transaction Log → Pending transactions;确认正确点击 Commit,发现问题点击 Rollback。只要 Auto-commit 或自动提交偏好绕过了手动事务,这套检查链就不会留下可回滚的待处理状态。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
GitHub CLI 怎样用 JSON 输出批量筛选 issueGitHub CLI 怎样用 JSON 输出批量筛选 issue
上一篇
GitHub CLI 怎样用 JSON 输出批量筛选 issue
OpenAI Responses API output_text 与 output 结构如何选择
下一篇
OpenAI Responses API output_text 与 output 结构如何选择
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    1018次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    1020次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    1155次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    1121次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    962次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码