PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

funzioni e transazioni postgres con BEGIN

Risposte per numero:

  1. No; se S2 non riesce, l'intera transazione viene interrotta e può essere solo annullata.

  2. Probabilmente c'è un malinteso. L'istruzione SQL BEGIN che avvia una transazione è qualcosa di completamente diverso da BEGIN che avvia un blocco PL/pgSQL. Quest'ultimo non avviare una transazione.

    Se non esiste un comando SQL esplicito BEGIN , ogni istruzione viene eseguita nella propria transazione ("autocommit").

    Tutte le istruzioni in una funzione vengono eseguite in un'unica transazione.

  3. Non puoi avere COMMIT (o ROLLBACK ) in una funzione.

  4. Sì. Questa è la stessa domanda della 1., solo negativa.