Laravel——事务

    xiaoxiao2022-07-05  191

    准备:表必须是InnoDB引擎

    DB::beginTransaction(); try{     $name = 'abc';     $result1 = Test::create(['name'=>$name]);     if (!$result1) {         /**          * Exception类接收的参数          * $message = "", $code = 0, Exception $previous = null          */         throw new \Exception("1");     }     $result2 = Test::create(['name'=>$name]);     if (!$result2) {         throw new \Exception("2");     }     DB::commit(); } catch (\Exception $e){     DB::rollback();//事务回滚     echo $e->getMessage();     echo $e->getCode(); }

     

      注意:如果id是自增的话,mysql的primary key是在内存中维护的,事务回滚是不会回退id,所以中间会出现断层

     

    最新回复(0)