Sql 如何使用rollback命令回滚事务?

Sql 如何使用rollback命令回滚事务?,sql,rollback,Sql,Rollback,我已经从我的表中删除了一条记录,在执行rollback命令后,它显示“command completed SUCCESS”,但当我使用select语句检查它时,表仍然看起来是空的?为什么? Rollback命令将返回到表的最新提交状态。我猜您的delete查询可能包含提交更改(删除记录)的语句。一些数据库连接方法,如ODBC默认值,即,每个语句执行后,数据库连接都会自动发出COMMIT。我不能说在你的案例中是否发生了这种情况,但如果是这样,就没有办法进行回滚。祝你好运。杰森·克拉克 我使用MyS

我已经从我的表中删除了一条记录,在执行rollback命令后,它显示“command completed SUCCESS”,但当我使用select语句检查它时,表仍然看起来是空的?为什么?

Rollback命令将返回到表的最新提交状态。我猜您的delete查询可能包含提交更改(删除记录)的语句。

一些数据库连接方法,如ODBC默认值,即,每个语句执行后,数据库连接都会自动发出COMMIT。我不能说在你的案例中是否发生了这种情况,但如果是这样,就没有办法进行回滚。祝你好运。

杰森·克拉克

我使用MySql做了一个测试,使用了“开始”、“删除”和“回滚”,使用了以下SQL(示例):

开始;从aluno中删除,其中id=1;回滚

在PostgreSQL中,SQL语法是相同的,并且也有效

您确定使用了正确的SQL吗?我可能弄错了?是否真的需要使用“开始事务”而不仅仅是“开始”


我希望这有帮助

显示您得到的查询,包括事务的开始和回滚如何执行查询和事务?通过像VB这样的客户端应用程序?您的SQL平台是什么?MySQL,SQL Server…?我正在SQL Server上执行,并且使用BEGIN transaction执行了事务command@JasonClark,只需显示一些代码!开始从表中删除事务;回滚事务这意味着我可以在执行提交命令之前回滚我的事务?是的,你可以。但就像@BobJarvis所说的,在某些情况下,“自动提交”模式是启用的。因此,删除记录后,可能已提交更改,因此无法使用rollback命令撤消更改。