Проводит ли транзакция в хранимой процедуре какую-либо блокировку, чтобы другие не могли обновить таблицы?
При выполнении некоторых DML
для таблицы InnoDB
затронутые строки блокируются до конца транзакции (независимо от того, находится ли она внутри хранимой процедуры или нет).
Вы можете изменить заблокированные строки в той же транзакции, которая их заблокировала.
Чтобы явно заблокировать некоторые строки, введите:
SELECT *
FROM table
WHERE condition
FOR UPDATE
За исключением фиксации или отката транзакции, другого способа разблокировки строк не существует
Нужно ли явно указывать логику отката или транзакция автоматически откатится, если произойдет ошибка, поскольку она никогда не достигнет команды фиксации.
Вам нужно будет явно выполнить откат.