Если вы просто вызываете хранимую процедуру, это явно не в транзакции. Каждая операция будет видна после ее завершения.
Если вы запускаете транзакцию и вызываете хранимую процедуру, она находится в транзакции, и до тех пор, пока вы не выполните DDL, который нарушает транзакции типа «снежинка», вы просто атом c.
То, как мы это читаем / понимаем.
Документы говорят то, что я сказал:
Если хранимая процедура вызывается вне явной транзакции, затем каждый оператор внутри хранимой процедуры выполняется как отдельная транзакция.
эта часть объясняет, откуда берется явная / неявная часть
Помните, что операторы DDL ( CREATE TABLE, et c.) Вызывает неявный COMMIT. Такие операторы не должны использоваться внутри хранимой процедуры, если процедура будет вызываться внутри транзакции. Например, следующий псевдокод демонстрирует, что не нужно делать:
В этой части объясняется причина прерывания транзакций
В настоящее время команды управления транзакциями (BEGIN, COMMIT , ROLLBACK) не разрешены внутри хранимой процедуры. Это означает, что хранимая процедура выполняется полностью в рамках одной транзакции (явно или неявно).
Таким образом, эта часть относится к этим другим частям. Это говорит о том, что вы не можете выполнять вложенные / рекурсивные транзакции. Как вы можете в других БД.