Safe database transactions with automatic retry on deadlock
laravelphp
Laravel 12 - Database Transactions with Retry
<?php
use Illuminate\Support\Facades\DB;
// Simple transaction
DB::transaction(function () {
DB::table('users')->update(['votes' => 1]);
DB::table('posts')->delete();
});
// Transaction with manual control
DB::beginTransaction();
try {
$user = User::create($data);
$user->profile()->create($profileData);
DB::commit();
} catch (\Exception $e) {
DB::rollBack();
throw $e;
}
// Transaction with automatic retry on deadlock (Laravel 12)
DB::transaction(function () {
// Your database operations
}, attempts: 5);