Ci-dessous, les différences entre deux révisions de la page.
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] sparky créée |
support: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> |
| | ||
| | ||
insert into TOTO (pk_toto, | insert into TOTO (pk_toto, | ||
- | [/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' | Ainsi seul la commande INSERT est annulé et les 2 commandes updates ne seront pas annulées, n' | ||