PostgreSQL La base de donnees la plus sophistiquee au monde.

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
support:trucs_et_astuces:ne_faire_un_rollback_que_de_la_derniere_commande [2010/12/06 14:02] – créée sparkysupport:trucs_et_astuces:ne_faire_un_rollback_que_de_la_derniere_commande [2010/12/06 14:06] (Version actuelle) sparky
Ligne 1: Ligne 1:
 Souvent vous devez des manipulations avec psql, probablement qu'en tant que personne prudente vous utilisiez cette commande Souvent vous devez des manipulations avec psql, probablement qu'en tant que personne prudente vous utilisiez cette commande
-[code]+<code>
 \set AUTOCOMMIT OFF \set AUTOCOMMIT OFF
-[/code]+</code
 Le problème est que si vous tapez mal une commande, tout ce qui précédait sera perdu  Le problème est que si vous tapez mal une commande, tout ce qui précédait sera perdu 
  
 exemple exemple
-[code]+<code>
  UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=1;  UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=1;
  UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=2;  UPDATE TOTO set col1='Nouvelle valeur' where pk_toto=2;
 insert into TOTO (pk_toto,col1) value (5,'Nouvelle ligne'); insert into TOTO (pk_toto,col1) value (5,'Nouvelle ligne');
-[/code]+</code>
 Si la dernière commande est incorrecte (et ici c'est le cas) les 2 commandes updates précédentes vont être annulées. Si la dernière commande est incorrecte (et ici c'est le cas) les 2 commandes updates précédentes vont être annulées.
  
-Pour évitez cela, ajoutez +Pour évitez cela, faites en début de session(ou mettez-le dans votre psqlrc) 
-[code]+<code>
 \set ON_ERROR_ROLLBACK ON \set ON_ERROR_ROLLBACK ON
-[/code]+\set AUTOCOMMIT OFF 
 +</code>
  
 Ainsi seul la commande INSERT est annulé et les 2 commandes updates ne seront pas annulées, n'oubliez pas que les UPDATES ici ne seront sauvegardé que quand vous ferez un COMMIT Ainsi seul la commande INSERT est annulé et les 2 commandes updates ne seront pas annulées, n'oubliez pas que les UPDATES ici ne seront sauvegardé que quand vous ferez un COMMIT
  
 
support/trucs_et_astuces/ne_faire_un_rollback_que_de_la_derniere_commande.1291640554.txt.gz · Dernière modification : 2010/12/06 14:02 de sparky