Une transaction groupe plusieurs opérations en un tout : soit toutes réussissent, soit aucune (principe « tout ou rien »).
Syntaxe
BEGIN;
... opérations ...
COMMIT; -- valide définitivement
-- ROLLBACK; -- annule tout en cas de problèmeExemple (clients + commandes) :
BEGIN;
INSERT INTO clients (nom, ville) VALUES ('Dupont', 'Lille');
INSERT INTO commandes (client_id, montant)
VALUES (currval('clients_id_seq'), 250);
COMMIT;
-> les deux insertions sont liées ; si l'une échoue, on annule toutAstuce : currval('nom_de_la_sequence') renvoie le dernier id généré pour cette table dans ta session. C'est comme ça qu'on relie la 2e ligne à la 1re qu'on vient d'insérer (ici la séquence de etudiants s'appelle etudiants_id_seq).
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →