Здравствуйте. Есть код, на php + laravel + mysql, который за сценой выполняет транзакцию в mysql:
DB::transaction(function () use (&$game, &$bet, $items, $user) {
$bet->user()->associate($user);
$bet->game()->associate($game);
$bet->save();
$this->inventoryService->move($items, $bet);
$game->save();
});
Собственно в таблице bets есть поле game_id с foreign key на таблицу games. Можно ли сделать так, что-бы во время лока таблицы games, другой транзакцией, первая выкидывала ошибку?
Нужно так:
game_transaction2 start
bet_transaction1 start
bet_transaction1 ERROR
А сейчас так:
game_transaction2 start
bet_transaction1 start
bet_transaction2 stop success
game_transaction2 stop success