| 172 | Les transactions de la-cli sont reportés tel quel sur la base SQL et le fonctionnement de {{{la-cli}}} reprends les même règles que le client {{{psql}}} de PostgreSQL: |
| 173 | |
| 174 | * par défaut chaque commande démarre et termine une transaction |
| 175 | * {{{begin}}} démarre une transaction explicite, elle se termine soit par l'utilisation de {{{commit}}} ou {{{rollback}}} soit parce qu'une erreur SQL intervient |
| 176 | |
| 177 | Rappelez-vous également que les modifications posent des verrous sur la base et que seul la fin de la transaction retire ces verrous (ou la mort du processus). |
| 178 | |
| 179 | === begin, commit et rollback === |
| 180 | |
| 181 | {{{begin}}} démarre un transaction: |
| 182 | |
| 183 | {{{ |
| 184 | latmostest cli=> begin |
| 185 | latmostest cli-> |
| 186 | }}} |
| 187 | |
| 188 | Notez le subtile changement de prompt indiquant qu'une transaction est en cours. |
| 189 | |
| 190 | A partir de là, aucune modification ne sera visible tant que {{{commit}}} n'aura pas été appelé. |
| 191 | A l'inverse toutes les modifications en cours seront annulé avec {{{rollback}}} |
| 192 | |
| 193 | {{{ |
| 194 | latmostest user/bob=> begin |
| 195 | latmostest user/bob-> set givenName pangolin |
| 196 | Done. |
| 197 | latmostest user/bob-> show givenName |
| 198 | bob: pangolin |
| 199 | latmostest user/bob-> rollback |
| 200 | latmostest user/bob=> show givenName |
| 201 | bob: Bob |
| 202 | latmostest user/bob=> |
| 203 | }}} |
| 204 | |
| 205 | === Mode de transaction automatique === |
| 206 | |
| 207 | Dans ce mode chaque nouvelle commande démarre une nouvelle transaction s'il n'y en a pas une déjà en cours. |
| 208 | |
| 209 | Ce mode s'active et se désactive avec la commande transaction (notez le changement de prompt): |
| 210 | |
| 211 | {{{ |
| 212 | latmostest cli=> transaction on |
| 213 | latmostest cli=# |
| 214 | }}} |
| 215 | |
| 216 | La première commande démarre une transaction: |
| 217 | |
| 218 | {{{ |
| 219 | latmostest user/bob=# set givenName pangolin |
| 220 | Done. |
| 221 | latmostest user/bob-# rollback |
| 222 | latmostest user/bob=# transaction off |
| 223 | latmostest user/bob=> |
| 224 | }}} |