表必须是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,所以中间会出现断层