Exemples SQL
CREATE TABLE Compte (
idCompte INT PRIMARY KEY auto_increment,
idClient INT NOT NULL,
solde REAL NOT NULL,
INDEX (idClient)
) engine=InnoDB;
CREATE TABLE Operation (
idOperation INT PRIMARY KEY auto_increment,
idCompte INT NOT NULL REFERENCES Compte(idCompte),
libelle VARCHAR(255),
montant REAL NOT NULL,
INDEX (idCompte)
) engine=InnoDB;
INSERT INTO Compte (idCompte, idClient, solde) VALUES (1, 5, 1500.10);
INSERT INTO Compte (idCompte, idClient, solde) VALUES (2, 5, 100.50);
# Virement de 100 euros du Compte 1 vers Compte 2
START TRANSACTION;
UPDATE Compte SET solde = solde + 100 WHERE idCompte = 1;
# À ce moment là sans la transaction l'état de la base serait incohérent
UPDATE Compte SET solde = (solde - 100) WHERE idCompte = 2;
INSERT INTO Operation (idCompte, libelle, montant) VALUES (1, 'Virement', -100);
INSERT INTO Operation (idCompte, libelle, montant) VALUES (2, 'Virement', 100);
COMMIT;