Re: [Postgresql-it] commit

  • From: Matteo Beccati <php@xxxxxxxxxxx>
  • To: postgresql-it@xxxxxxxxxxxxxxxxx
  • Date: Tue, 01 Feb 2005 12:08:54 +0100

Er Baitch wrote:

Ciao ML,
parlando con un mio amico mi e' sorto un dubbio:
le transazioni in pgsql >=7.2 sono auto-committate vero?! pure quelle eseguite da plpgsql (senza esplicito commit)?
nel dubbio non ho saputo rispondere.

Nel caso non lo fossero, ora mi ritrovo anche una caterva di dati non committati :-( sempre in questo caso, e' possibile avere una lista delle transazioni non committate? e per committare tutto?

Forse hai un po' di confusione riguardo all'autocommit. Di default ogni comando SQL lanciato è una transazione a sè stante.

SELECT * FROM tabella;

è equivalente a:

BEGIN; SELECT * FROM tabella; COMMIT;

così come:

SELECT funzione_che_aggiorna_qualcosa();

è la stessa cosa di:

BEGIN; SELECT funzione_che_aggiorna_qualcosa(); COMMIT;


Tutto questo è vero, a meno che tu non disabiliti l'autocommit iniziando esplicitamente una transazione. Non esistono perciò transazioni appese, a meno che tu non abbia iniziato transazioni lasciando aperte le connessioni al db, una possibilità alquanto remota nel tuo caso.


Ciao ciao
--
Matteo Beccati
http://phpadsnew.com/
http://phppgads.com/

Other related posts: