Мой сервер MySQL 5.5 установил autocommit=1
.Выполняют ли DML в хранимой процедуре в одной транзакции?
В моей хранимой процедуре имеется несколько DML, но без явного управления транзакциями.
Когда я выдаю call the_procedure()
из MySQL CLI (autocommit
по-прежнему 1), выполняются ли все процедуры DML в одной транзакции?
Или они запускаются в отдельных транзакциях и вызывают неявное совершение транзакции после каждого DML (из-за автообновления)?
Если они были преднамеренно извращены, MySQL, вероятно, должен вести себя так же, как и большинство других баз данных SQL - транзакции и хранимые процедуры являются ортогональными понятиями - одна транзакция может охватывать несколько подпрограмм, одна подпрограмма может создавать и совершать несколько транзакций. –