У меня есть код, как этотпараллелизм в InnoDB
reserve.php
$r=mysql_query("select count(*) from ticket");
$rec=mysql_fetch_array($r);
if ($rec[0]==0)
{
insert into ticket values .....
}
У меня есть 1 билет только. Пользователи заказывают Reserve.php.
«a» пользовательский запрос reserve.php и доступный билет 0. но перед вставкой для «b» доступного для пользователя билета еще 0. поэтому два пользователя резервируют билет.
стол Innodb. как предотвратить это? транзакции, таблицы блокировки или что?
, нужно ли использовать функцию set tranaction перед выбором для обновления и вставки? – user677900
Я думаю, да. «Блокировки, установленные в режиме LOCK IN SHARE MODE и FOR UPDATE, публикуются, когда транзакция совершена или откат». – user677900