#php #mysql #deadlock
#php #mysql #тупиковая ситуация
Вопрос:
Я хотел бы добавить некоторую логику в свое приложение, чтобы оно повторно отправляло любые заблокированные транзакции. Что я хотел бы знать, так это нужно ли мне прервать текущую транзакцию или просто повторно выполнить запрос, который не удался
Итак, если я запускаю транзакцию, которая добавляет / обновляет много строк, и одна из них блокируется, нужно ли мне в этот момент выполнить откат ко всей транзакции и воспроизвести всю группу или просто повторить конкретный запрос?
Надеюсь, я четко описал сценарий
Спасибо
Комментарии:
1. Разве вы не можете устранить взаимоблокировки? Они звучат не очень хорошо.
2. Привет. Конечно, попробую, но рано или поздно может возникнуть тупик, и я хотел бы быть готовым
Ответ №1:
Если транзакция не зафиксирована (а это не так, потому что она приводит к взаимоблокировке), все внутри этой транзакции автоматически откатывается. Поэтому вам нужно повторить все, что не было зафиксировано.
Прочтите это http://dev.mysql.com/doc/refman/5.0/en/innodb-deadlocks.html