问题标签 [rollback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5815 浏览

sql-server-2008 - 我应该提交还是回滚创建临时表、读取然后删除它的事务?

要选择与数百个 ID 列表相关的信息...而不是做一个巨大的选择语句,我创建临时表,将 ID 插入其中,将其与表连接以选择与 ID 匹配的行,然后删除临时表桌子。所以这本质上是一个读取操作,不会对任何持久性数据库表进行永久性更改。

我在事务中执行此操作,以确保完成后删除临时表。我的问题是......当我提交这样的事务与让它回滚时会发生什么?

性能方面......数据库引擎是否需要做更多的工作来回滚事务而不是提交事务?由于唯一的修改是对临时表进行的,因此甚至有区别吗?

这里的相关问题,但没有回答我涉及临时表的具体案例:我应该提交还是回滚读取事务?

编辑(澄清问题):

在提交/回滚之前不寻求建议。交易是绝对必要的。假设没有错误发生。假设我已经创建了一个临时表,假设我知道发生了对 tempdb 的真正“工作”写入,假设我在事务中执行只读(选择)操作,并假设我在临时表上发出了删除语句。毕竟......哪个更便宜,提交或回滚,为什么?基于这种涉及临时表和其他只读操作的特定场景,数据库引擎在那个点可能为提交与回滚做哪些其他工作?

0 投票
7 回答
58098 浏览

c# - 无法访问 SqlTransaction 对象以在 catch 块中回滚

我有一个问题,我发现的所有文章或示例似乎都不关心它。

我想在事务中执行一些数据库操作。我想做的与大多​​数示例非常相似:

但问题是在块SqlTransaction Trans内声明了。所以它在块try中是不可访问的。catch()大多数示例只是在块之前执行Conn.Open(),但我认为这有点冒险,因为两者都可能引发多个异常。Conn.BeginTransaction()try

我错了,还是大多数人只是忽略了这种风险?如果发生异常,能够回滚的最佳解决方案是什么?

0 投票
6 回答
161738 浏览

mysql - 如何撤消刚刚执行的 mysql 语句?

如何撤消最近执行的 mysql 查询?

0 投票
1 回答
5290 浏览

sql-server - 我可以回滚还原吗?SQL 服务器

无论如何要回滚错误执行的还原?

(使用不同数据库的备份文件) SQL Server

谢谢...

0 投票
1 回答
1687 浏览

asp.net-mvc-2 - MVC asp.net 中的事务

想知道在 asp.net 中是否有针对 MVC 2 的任何事务支持?即提交和回滚?

我有一些稍微有风险的数据库交易,我更愿意通过交易来巩固这些交易。

系统事务名称空间可以合并到数据库调用的存储库中吗?

0 投票
3 回答
3519 浏览

ruby-on-rails - Rails - 从 before_create 返回 false 防止更改其他模型

我有一个before_create过滤器来检查人们是否发布了太多评论。

如果他们是,我想标记他们的帐户。

before 过滤器返回 false 以停止创建评论。问题是这会触发 ROLLBACK,它也会撤消我对用户模型所做的更改。

完成此操作的正确模式是什么?具体来说:每次创建对象时运行检查,如果检查失败,则能够编辑另一个模型。

0 投票
3 回答
191 浏览

database - 回滚数据库更改

我在使用工作流程管理工具的团队中工作。我遇到了一个挑战,用户应该能够将流程中任何时候所做的更改回滚到过去的某个时间点。当然,收费可以处理它,但在这些活动期间可能进行的额外数据库调用必须手动回滚。

挑战在于存在多个并行路径并且外部数据库调用的排列不同。那么是否有框架或方法来跟踪这些数据库调用并回滚它们?

谢谢你,贾斯汀

0 投票
2 回答
2466 浏览

mercurial - 为什么 Mercurial 只有一级回滚?

我了解回滚的限制和使用时需要注意的事项,但我只是想知道为什么只有一级回滚。

我猜这是一个设计决定,存储多个先前的事务状态以处理多级回滚的麻烦比它的价值更麻烦。

0 投票
2 回答
642 浏览

php - PHP脚本中止,导致MySQL事务失败,整个应用程序锁定一段时间

我在 MySQL 数据库中使用事务以及 Ajax,并且遇到了脚本超时的问题。所以,这里是发生的事情的概要:

  1. 页面上的 Ajax 脚本向服务器发出请求。
  2. 服务器接收请求;脚本启动 MySQL 事务。
  3. Ajax 脚本设置为两秒后超时;超时;告诉服务器中止请求。
  4. 服务器脚本死亡;交易挂起。
  5. MySQL 通知事务已挂起;按预期回滚,但在一群客户变得不高兴之前,因为桌子被锁定了半分钟,他们无法访问网站。

该怎么办?

我想服务器脚本只需要比给定的两秒多一点的时间,所以我ignore_user_abort()在每个页面上调用,然后register_shutdown_function()如果客户端实际上已中止,则调用以显式回滚事务。

这是一个好计划吗?有替代方案吗?

0 投票
1 回答
618 浏览

git - git clone 覆盖了同名的现有仓库

它有一个现有的 git checkout 并进行了一些修改,然后我检查了同一个 repo,它覆盖了文件夹。有没有办法通过未提交的更改来获取旧的仓库?

我检查了“ git reflog --all ”,但它只给了我最近的结帐。

编辑:无法重现该问题。所以猜我在某个地方犯了一个错误