Я использую PostgreSQL 10 от RDS (AWS).Так что учтите, что у меня нет полных прав на все, что я хочу
В PostgreSQL у меня есть некоторые функции, написанные на PL / pgSQL.
Из моего опыта работы с этими функциями я не могу запускать / фиксировать / откатывать транзакции.В блоке DO
я тоже не могу этого сделать.
Это правильно?Так что за этим стоит логика ... Кажется, PostgreSQL ожидает, что каждая функция будет вызываться в контексте существующей транзакции.Правильно?
Но что, если я хочу, чтобы каждое выражение в моей функции выполнялось в отдельной (короткой) транзакции, т.е. иметь поведение, похожее на AUTOCOMMIT = ON?
Я нашел расширение, которое, возможно, может это сделать, но я не уверен.Я не знаю, имеет ли это отношение.https://www.postgresql.org/docs/10/ecpg-sql-set-autocommit.html
Нет ли в Postgres стандартного способа сделать это без необходимости загружать и устанавливать дополнительные пакеты / расширения?
Еще раз: я хочу, чтобы каждое утверждение в моей функции быловыполняется в отдельной (короткой) транзакции, т. е. иметь поведение, похожее на AUTOCOMMIT = ON.
Итак, я хочу что-то вроде этого: https://docs.microsoft.com/en-us/sql/t-sql/statements/set-implicit-transactions-transact-sql?view=sql-server-2017