Mode Autocommit
Attention : Autocommit
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
etSET 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 .