sql >> Base de Datos >  >> RDS >> PostgreSQL

funciones postgres y transacciones con BEGIN

Respuestas por número:

  1. No; si S2 falla, toda la transacción se aborta y solo se puede revertir.

  2. Probablemente haya un malentendido. La instrucción SQL BEGIN que inicia una transacción es algo bastante diferente del BEGIN que inicia un bloque PL/pgSQL. Este último no iniciar una transacción.

    Si no hubiera un comando SQL explícito BEGIN , cada instrucción se ejecuta en su propia transacción ("autoconfirmación").

    Todas las declaraciones en una función se ejecutan en una sola transacción.

  3. No puede tener COMMIT (o ROLLBACK ) en una función.

  4. Sí. Esta es la misma pregunta que la 1., solo que en forma negativa.