блока DO $$ BEGIN .... END; $$ ?
А мне Ваш вопрос непонятен. Но, казалось бы, ответ "наоборот". Да и вообще, TIAS. ;)
Документация говорит, что commit внутри анонимного блока возможен, но возникает вопрос где эта транзакция начинается?
Она начинается с DO. Опять-таки, легко же взять и попробовать.
о как, спасибо, странно что в доках не указано, хотя может я слепой
Цитаты оттуда и из описаний соответствующих команд: Transaction control is only possible in CALL or DO invocations from the top level or nested CALL or DO invocations without any other intervening command. If CALL is executed in a transaction block, then the called procedure cannot execute transaction control statements. Transaction control statements are only allowed if CALL is executed in its own transaction. If DO is executed in a transaction block, then the procedure code cannot execute transaction control statements. Transaction control statements are only allowed if DO is executed in its own transaction. По-моему, указано и понятно.
"its own transaction" применительно к DO - это все, что внутри DO END или это явный BEGIN; DO END? вот это не очень очевидно, кмк
Всё написано вполне ясно. > это все, что внутри DO END Да. > или это явный BEGIN; DO END Такая интерпретация противоречит предыдущему предложению ("If DO is executed in a transaction block, then the procedure code cannot execute transaction control statements.") — следовательно, она неверна.
Обсуждают сегодня