关于mysql事务的疑问,rollback是否有必要?

START TRANSACTION;
update temp2 set username="user2" where id=1;
update temp2 set username="user2" where id=2;
COMMIT;

不是说开启事务后当发生异常时可以进行rollback操作吗?但是我发现其实不需要rollback也行,因为只要没有执行commit,数据库里的数据其实并不会真的更新。所以roolback还有必要吗?

阅读 1.1k
2 个回答

需要,不结束的事务会导致大量的IDLE IN TRANSACTION,会造成性能下降,你必须尽快结束事务,无论COMMIT还是ROLLBACK

新手上路,请多包涵

在你这个例子中,如果你执行了 COMMIT,那么所有的更改都会被永久保存到数据库中。如果没有执行 COMMIT,事务会保持打开状态,更改不会被持久化到数据库中。直到手动执行 COMMIT 或ROLLBACK,或者连接断开。
ROLLBACK 的重要性可以通过 ROLLBACK 撤销所有更改,保证数据的一致性和完整性。
在实际应用中,事务中可能会出现各种异常,如违反约束、数据错误等,此时 ROLLBACK 是必要的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏