auto-commit
. Cela signifie que les commandes sont prises en compte et validées lorsqu'elles sont exécutées. Dans ce cas il n'y a pas vraiment de transaction, ou plutôt, chaque transaction commence et se termine au moment où l'on entre une commande.
Sur MySQL, pour désactiver ce mode, il faut entrer la commande :
Exemple 78. Fixer le niveau d'isolation des transactions
set transaction isolation level [read uncommitted | read committed | repeatable read | serializable]
autocommit
.
commit
, dans le seconde la commande
rollback
.
Une opération
commit
peut échouer, par exemple si des contraintes ne sont pas vérifiées en sortie de transaction. Dans ce cas, l'ensemble de la transaction est annulée.
create
,
alter
,
drop
) déclenchent automatiquement la validation de la transaction dans laquelle elles sont exécutées. On dit qu'elles fonctionnent en
auto-commit
.
Les commandes DML (
select
,
insert
,
update
,
delete
) ne peuvent plus être annulées si elles ont été validées automatiquement par l'exécution d'une commande DDL.
Il est donc important d'éviter d'entrer des commandes DML et DDL dans une même transaction.