Mode Autocommit

AttentionAutocommit

La plupart des clients et langages d'accès aux bases de données proposent un mode autocommit permettant d'encapsuler chaque instruction dans une transaction. Ce mode revient à avoir un COMMIT implicite après chaque instruction.

Ce mode doit être désactivé pour permettre des transactions portant sur plusieurs instructions.

Oracle

  • Sous Oracle SQL*Plus : SET AUTOCOMMIT ON et SET AUTOCOMMIT OFF

  • Sous Oracle SQL Developper : Menu Outils > Préférences > Base de données > Paramètres de feuille de calcul > Validation automatique dans une feuille de calcul

PostgreSQL

Avec psql :

  • \set AUTOCOMMIT on

  • \set AUTOCOMMIT off

Si l'autocommit est activé, il est néanmoins possible de démarrer une transaction sur plusieurs lignes en exécutant un BEGIN TRANSACTION explicite : BEGIN ; ... ; COMMIT ;.

Ainsi deux modes sont possibles :

  • Autocommit activé : BEGIN explicites, COMMIT implicites

  • Autocommit désactivé : BEGIN implicites, COMMIT explicites

Access

Sous Access, toute requête portant sur plusieurs lignes d'une table est encapsulée dans une transaction.

Ainsi par exemple la requête UPDATE Compte SET Solde=Solde*6,55957 est exécutée dans une transaction et donc, soit toutes les lignes de la table Compte seront mises à jour, soit aucune (par exemple en cas de panne pendant .