Aller au contenu

Transactions (BEGIN / COMMIT / ROLLBACK)#

courant

Syntaxe#

BEGIN [TRANSACTION];
COMMIT [TRANSACTION];
ROLLBACK [TRANSACTION];

Exemples#

BEGIN;
UPDATE comptes SET solde = solde - 100 WHERE id = 1;
UPDATE comptes SET solde = solde + 100 WHERE id = 2;
COMMIT;

Modes BEGIN avancé#

BEGIN [DEFERRED|IMMEDIATE|EXCLUSIVE];
Mode Verrou pris
DEFERRED (défaut) Aucun verrou tant qu'aucune lecture/écriture
IMMEDIATE Verrou d'écriture immédiat
EXCLUSIVE Verrou exclusif immédiat

SAVEPOINT avancé#

Points de restauration imbriqués, pour annuler une partie seulement d'une transaction.

SAVEPOINT nom;
ROLLBACK TO [SAVEPOINT] nom;
RELEASE [SAVEPOINT] nom;
SAVEPOINT avant_maj;
UPDATE etudiants SET age = age + 1;
ROLLBACK TO avant_maj;
RELEASE avant_maj;

SQLite

Sans transaction explicite, chaque instruction est auto-committée. Voir aussi Bonnes pratiques — Transactions.