如何在 Laravel 5.5 中设置事务隔离级别?

How do I set transaction isolation level in Laravel 5.5?

在 laravel 5.5 和 MySQL 中,我使用 \Illuminate\Support\Facades\DB 以这种方式创建交易:

DB::transaction(function() {
    ...
});

此类事务的隔离级别是多少,是否有明确设置的方法?

SqlLite 中的默认值是

'BEGIN IMMEDIATE TRANSACTION';

MySQL中的默认值为

'SET TRANSACTION ISOLATION LEVEL READ COMMITTED';

你可以通过这样的方式自己设置

$pdo = DB::connection()->getPdo();
$pdo->exec('SET TRANSACTION ISOLATION LEVEL READ COMMITTED');