PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

funções e transações postgres com BEGIN


Respostas por número:

  1. Não; se S2 falha, toda a transação é abortada e só pode ser revertida.

  2. Provavelmente há um mal-entendido. A instrução SQL BEGIN que inicia uma transação é algo bem diferente do BEGIN que inicia um bloco PL/pgSQL. Este último não iniciar uma transação.

    Se não houver comando SQL explícito BEGIN , cada instrução é executada em sua própria transação (“autocommit”).

    Todas as instruções em uma função são executadas em uma única transação.

  3. Você não pode ter COMMIT (ou ROLLBACK ) em uma função.

  4. Sim. Esta é a mesma pergunta que 1., apenas na negativa.