为什么我们可以在不使用多个查询的情况下使用DB::rollback()
。如下:
DB::beginTransaction();
//database queries here
//even if any errors pop up here, it won't reach DB::commit() and code won't get committed
DB::commit();
在上述情况下,即使任何语句失败,提交也永远不会发生,并且事务也不会处理。所以回滚不是必需的还是必需的?
答案 0 :(得分:1)
通常不使用回滚,以便在发生某些错误时停止当前流,而是使用回滚,以便可以撤消对事务或数据库所做的任何更改,直到错误点为止。
因此,这不是强制性的,但仅保留相关数据是非常可取的。
答案 1 :(得分:0)
回滚
就我而言,我在使用付款流程时会使用回滚,例如在用户必须使用贝宝(Paypal)帐户支付注册费后必须创建具有完整信息的用户,如果无法支付用户信息,则会回滚
答案 2 :(得分:0)
回滚的使用:-
DB::beginTransaction();
try{
//save in table 1
//save in table 2
//save in table 3....with a sql error
DB::commit();
}catch(){
DB::rollback(); //if rollback due to error occurs in query 3 then no data will be saved in table 1 and 2...Not Mandatory
}