Nik*_*nko 5 php transactions isolation-level laravel
在带有 MySQL 的 laravel 5.5 中,我使用\Illuminate\Support\Facades\DB
这种方式创建事务:
DB::transaction(function() {
...
});
Run Code Online (Sandbox Code Playgroud)
这种事务的隔离级别是什么,有没有办法显式设置它?
SqlLite 中的默认值是
'BEGIN IMMEDIATE TRANSACTION';
Run Code Online (Sandbox Code Playgroud)
MySQL 中的默认值是
'SET TRANSACTION ISOLATION LEVEL READ COMMITTED';
Run Code Online (Sandbox Code Playgroud)
你可以通过做这样的事情自己设置
$pdo = DB::connection()->getPdo();
$pdo->exec('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');
Run Code Online (Sandbox Code Playgroud)