Rollback SQL2024 年 8 月 29 日 | 4 分钟阅读 ROLLBACK 是 SQL 中的一个命令,用于撤销数据库中最近完成的一组事务。当数据库出现问题时,会使用 rollback 命令,此时撤销自上次成功提交以来对数据库所做的所有更改变得至关重要。 当执行 ROLLBACK 命令时,它会撤销对数据库所做的当前事务。之后,数据库将恢复到事务开始之前的状态。 ROLLBACK 命令的语法如下: 需要注意的是,ROLLBACK 命令会撤销数据库中所有最近的事务。如果您不想回滚所有事务,可以使用 COMMIT 命令,它可以使成功的事务永久生效。Rollback 按相反的顺序执行,因此它首先撤销前一个事务,然后是其他事务。如果要回滚最后两个事务,则需要在最后两个事务之前使用 COMMIT 命令。这样做将使除最后两个事务之外的所有事务永久生效。我们将在示例中进一步讨论 COMMIT 和 ROLLBACK 命令。 让我们通过以下示例来正确理解 ROLLBACK 命令。 示例 1假设我们创建了一个名为 employee_table 的表,其中包含 emp_id、emp_name、emp_gender、emp_age、emp_city 和 emp_salary 字段。
我们将使用以下命令从 employee_table 中删除一些数据: 输出 如您所见,薪资低于 15,000 的行已被删除。
现在,我们将使用 ROLLBACK 命令来撤销数据库中最近使用的命令;然后我们将使用 SELECT 命令来查看表。 最终输出 我们将得到在使用 DELETE 命令之前的表。
示例 2让我们考虑另一个名为 student_table 的表,其中包含 stu_id、stu_name、stu_gender、stu_age、stu_stream 和 stu_marks 字段。
我们将使用以下命令更新 student_table 的数据: 输出 如您所见,stu_id = 2 的分数已更新。
现在,我们将使用 ROLLBACK 命令撤销最后一个命令。 最终输出 我们将得到在使用 UPDATE 命令之前的表。
示例 3让我们考虑另一个名为 customer_table 的表,其中包含 cust_id、cust_name、cust_gender、cust_age 和 cust_address 详细信息。
现在,我们将使用以下命令更新 customer_table 中的数据: 输出 您可以在下方看到更新后的表格。
现在,如果您只想回滚最后一个命令,因为它是错误的,那么就需要在使用最后一个命令之前使用 COMMIT 命令,以使成功的事务永久生效,但最后一个命令除外。 我们将借助 ROLLBACK 命令撤销最后一个命令。 最终输出 正如您在表中看到的,只有最后一个命令被撤销了。
上面讨论的示例有助于您了解 ROLLBACK 命令的确切作用。 ROLLBACK 命令可以由数据库管理系统自动运行,也可以由开发人员手动运行,以便在数据库出现问题时回滚更改。 结论在本文中,我们学习了 SQL 中的 ROLLBACK,它基本上是一个反转数据库中最新事务的命令。它会恢复旧数据并丢弃新事务。 下一主题SQL RANK 函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。