我们可以回滚删除查询但不是截断和删除。当我执行查询然后成功完成roll in delete,drop&截断。
我们可以在删除,截断和删除条件下回滚数据。下降。 但必须在执行查询之前使用Begin Transaction,删除,删除&截断。
以下是示例:
Create Database Ankit
Create Table Tbl_Ankit(Name varchar(11))
insert into tbl_ankit(name) values('ankit');
insert into tbl_ankit(name) values('ankur');
insert into tbl_ankit(name) values('arti');
Select * From Tbl_Ankit
/*======================For Delete==================*/
Begin Transaction
Delete From Tbl_Ankit where Name='ankit'
Rollback
Select * From Tbl_Ankit
/*======================For Truncate==================*/
Begin Transaction
Truncate Table Tbl_Ankit
Rollback
Select * From Tbl_Ankit
/*======================For Drop==================*/
Begin Transaction
Drop Table Tbl_Ankit
Rollback
Select * From Tbl_Ankit
答案 0 :(得分:1)
答案 1 :(得分:1)
对于 MySql :
13.3.2无法回滚的语句
某些语句无法回滚。通常,这些语句包括数据定义语言(DDL)语句,例如创建或删除数据库的语句,创建,删除或更改表或存储例程的语句。
您应设计您的交易不包含此类声明。如果您在事务中提早发布了一个无法回滚的语句,然后又有另一个语句失败,则在这种情况下,通过发出ROLLBACK语句就无法回滚事务的全部效果。
https://dev.mysql.com/doc/refman/8.0/en/cannot-roll-back.html
答案 2 :(得分:0)
我们可以在删除,删除和放大中回滚吗?截断?
您可以在SQLServer中回滚删除,删除,截断,但在Oracle中您无法回滚截断