问题标签 [savepoints]

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 投票
1 回答
371 浏览

mysql - 我收到保存点“无法识别的语句类型”错误

当我输入保存点 a 时,它在保存点中显示错误;并且错误是无法识别的语句类型

我在 wamp 服务器的 phpmyadmin 上运行代码

这是我的 SQL:

它不应该在那里显示错误

0 投票
1 回答
44 浏览

rest - 可以在 Restful Web 服务中使用 JDBC 保存点吗?

我的 Web 应用程序中有一个网格,其中数据是使用 jQuery API 直接从 Web 服务获取的。要求是

  1. 允许用户对其数据进行一些更改
  2. 如果他们想撤消
  3. 最后提交他们的更改

为了实现这一点,我使用了 JDBC 保存点并将它们保存在一个堆栈中,这个堆栈是为了允许撤消操作。我在更新语句之前设置了一个保存点,在撤消时我希望它回滚到最后一个保存点并且提交很简单。

我首先在桌面应用程序上对其进行了测试,它运行良好,但在基于 Web 的应用程序中它不起作用。

数据库连接类

我的更新功能

如果这里没有保存点语句,那么更新后我可以在我的网页上看到更改的记录,这些记录尚未保存在数据库中,因为自动提交设置为 false。这个保存点语句的问题是网格不显示更改的记录。在我看来,记录似乎没有更新,或者它们自动回滚到这个保存点。

我的逻辑有问题吗?或者这些保存点不适用于restful api?

0 投票
1 回答
166 浏览

sql-server - 触发器中的保存点

我有 3 张桌子,比如说 A 表、B 表和 C 表。

我在表 A 上有一个触发器,它将数据插入到表 B 中,我在表 b 上也有一个触发器,它将数据输入到表 C 中。在表 C 上,有一个执行过程的触发器。

任务是,即使在对表 C 的操作过程中发生了某些事情,即(发生任何错误),对表 A、B 和 C 的操作也应该继续并完成。问题是如果程序出现问题,表 A、B 和 C 上的操作也会中止。

我的表 C 触发器是:

这是我的程序:

现在,此过程为“测试”表返回错误消息。但我需要将剩余的交易保存到触发器 C。请给我解决方案。

0 投票
0 回答
81 浏览

oracle - Oracle 中的保存点

我的系统出现奇怪的行为。

有一个进程“proc_1”。这个过程是针对某些人的。当这群人低于 5000-6000 时,一切正常。但后来它以 12000 的数量在组中被解雇(大约需要 3 小时),我得到了这个:

ora-01086 : 保存点未建立或无效

有些东西崩溃了,并试图回到保存点,但没有。起初我检查是否没有错误地添加提交/回滚 - 看起来不错。然后,我在代码中添加了一些错误以使任何进程崩溃,并且在 10 分钟、20 分钟、一个小时后,每个进程都崩溃了,我得到了一个实际的问题原因(零除法)。我有一些猜测,但出于好奇:

当保存点花费太多时间时,保存点会在会话中死掉吗?

0 投票
1 回答
616 浏览

sql - 使用 ROLLBACK TO SAVEPOINT 条件

ROLLBACK TO SAVEPOINTCASE可以吗?我的查询是

我的想法是:

再次尝试插入 DPoint.uuid = '5547f4b7-00b3-4aac-8ceb-c9ca163a0214' 时,无需插入 Point、SPoint、Distance、DPointTS。所以我想在事务中将这些插入回滚到 my_savepoint。也许知道我必须以什么方式重写我的代码?

编辑:

我在没有 SAVEPOINT 的情况下更新我的策略 - 如果 SELECT 查询返回TRUE我评估所有插入。我以什么方式执行查询,仅在命令行中?在 DataGRIP 中尝试 console.sql 时,它会引发错误 - 它会诚实地执行所有行,INSERT INTO DPoint (uuid)...如果该点已经存在,则会失败。我想以一种方式执行语句

0 投票
1 回答
787 浏览

oracle - PLSQL oracle 的 FOR 循环中是否需要保存点?

只是想知道如果我们内部有异常捕获,我们是否真的需要在 LOOP 语句中需要回滚/保存点。

我在查询上方有 2 个查询。

  1. 提交何时按上述顺序发生。
  2. 在上面的代码中,考虑在光标中间抛出异常(如第 3 次或第 4 次迭代)。添加回滚和保存点会对此进行更改吗?目前,整个循环已完成,所有更新也正在提交。
0 投票
1 回答
469 浏览

postgresql - Postgresql - 跨事务边界恢复到保存点

有没有办法回滚到“提交的保存点”?

Afaik,postgresql 支持的实际保存点是子事务,当封闭事务提交或中止时,它们就失去了意义。是否存在跨事务边界的“保存点”?

基本上,我想要的是按顺序执行这三个事务:

交易~A

交易~B

交易~C

原因是我正在编写(Java)回归测试。

在错误的情况下,DO SOMETHING_ELSE尝试提交 B 时会触发事务提交异常(我相信在 DELETE 上违反了一些外键约束),但前提是事务 A 中完成的工作已经提交。

由于问题现已解决,事务 B 将提交。但是这样做,A 和 B 都会在数据库中留下一些副产品。如果下一个测试应该有任何成功的机会,现在需要从数据库中清除这些。

手动跟踪这些副产品非常困难,因此事务 C 应该删除这些副产品。

0 投票
0 回答
61 浏览

sql - Oracle Apex 保存点

我为此尝试了许多不同的代码行,但我无法弄清楚问题所在。每次我输入“SAVEPOINT [savepoint-name];” 在 Oracle APEX 中,我收到错误“ORA-00911:无效字符”,我无法创建保存点。有人知道可行的选择吗?

0 投票
1 回答
385 浏览

oracle - 如何在 Oracle apex 上创建回滚和保存点?

有什么方法可以创建保存点并在 Oracle apex 应用程序上回滚我在应用程序上尝试了几次但发生了几个错误

0 投票
1 回答
176 浏览

oracle11g - 如何回滚 Oracle DB 中的所有提交

最近我犯了一个错误,我的 oracle 数据库中的所有表都被删除(从 SQL Developer 工具运行 drop 命令)在我不知道的所有事务序列中,我在错误的数据库中删除了表。每次我删除一组表时,我都会提交操作。到那时,我意识到我已经在错误的数据库中删除了表,我已经来不及回滚了,因为它只回滚了最后一个操作。我也在网上搜索,发现 SavePoints 是分辨率,但我没有配置保存点。我在 2 天前备份了所有表,因此,我从那里运行脚本并在过去 2 天丢失了更改。有没有其他方法可以让我的数据库状态恢复。不过,我已经习惯了在执行此类操作时创建保存点。但是,我仍然很困惑。