START TRANSACTION;
update temp2 set username="user2" where id=1;
update temp2 set username="user2" where id=2;
COMMIT;
不是说开启事务后当发生异常时可以进行rollback操作吗?但是我发现其实不需要rollback也行,因为只要没有执行commit,数据库里的数据其实并不会真的更新。所以roolback还有必要吗?
START TRANSACTION;
update temp2 set username="user2" where id=1;
update temp2 set username="user2" where id=2;
COMMIT;
不是说开启事务后当发生异常时可以进行rollback操作吗?但是我发现其实不需要rollback也行,因为只要没有执行commit,数据库里的数据其实并不会真的更新。所以roolback还有必要吗?
在你这个例子中,如果你执行了 COMMIT,那么所有的更改都会被永久保存到数据库中。如果没有执行 COMMIT,事务会保持打开状态,更改不会被持久化到数据库中。直到手动执行 COMMIT 或ROLLBACK,或者连接断开。
ROLLBACK 的重要性可以通过 ROLLBACK 撤销所有更改,保证数据的一致性和完整性。
在实际应用中,事务中可能会出现各种异常,如违反约束、数据错误等,此时 ROLLBACK 是必要的。
2 回答1.3k 阅读✓ 已解决
2 回答955 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
3 回答1.4k 阅读
1 回答854 阅读✓ 已解决
2 回答645 阅读✓ 已解决
需要,不结束的事务会导致大量的
IDLE IN TRANSACTION
,会造成性能下降,你必须尽快结束事务,无论COMMIT
还是ROLLBACK