1
誰でも手伝ってください!私のプロジェクトで 、私はロック・レコードとの取引があります。私の場合はLaravelエラーロックデータベース対トランザクション休憩
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Testing extends Command {
protected function handling()
{
DB::beginTransaction();
try {
$posts = Posts::lockForUpdate()->find(1);
//run step 1
//run step 2
//run step 3
} catch (\Exception $e) {
DB::rollback();
}
}
}
を、私はそれを実行している場合、コマンドからそれを呼び出す:
php artisan test:run
...
running step 1
...
...
running step 2
..
..
Ctrl C
-> quit command.
トランザクションコミットと永遠にレコードをロックしません。
私はforce quitコマンドでトランザクションをコミットできますか?
を使用してコミットする必要があり、その後
DB::beginTransaction();
を使用している場合は、次の手順1 を実行している ... を実行します。.. ... running step 2 .. .. Ctrl C - > quitコマンドです。 '' ' トランザクションはコミットされません。ロックは解放されません。だから、レコードをロックしてデータベースを更新できません。 強制終了時にトランザクションをコミットする方法laravel –