На веб-сайте, когда пользователь публикует комментарий, я делаю несколько запросов, вставок и обновлений. (На MariaDB 10.1.29)
Я использую START TRANSACTION
, поэтому, если какой-либо запрос не выполняется в любой заданной точке, я могу легко выполнить откат и удалить все изменения.
Теперь я заметил, что это блокирует таблицы, когда я делаю INSERT
из другого INSERT
, и я не говорю во время выполнения запроса, это очевидно, но до транзакции не закрыто .
Тогда DELETE
блокируется, только если они имеют общий индексный ключ (комментарии для той же страницы), но, к счастью, UPDATE
не заблокирован.
Могу ли я выполнить любую транзакцию, которая не блокирует таблицу от новых вставок (пока транзакция выполняется, а не фактический запрос), или любой другой метод, который позволяет мне удобно "отменить" любой запрос, выполненный после некоторого момента?
PD:
Я запускаю транзакцию с функцией PHP mysqli_begin_transaction()
без какой-либо из flags
, а затем mysqli_commit()
.