La table est probablement créée avec le moteur de stockage MyISAM par défaut. Le moteur de stockage MyISAM ne prend pas en charge les transactions.
Créer un tableau
CREATE TABLE a ( id SERIAL PRIMARY KEY) ENGINE = MYISAM;
Requête
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Résultat
compter(*)
1
Faire la table InnoDB
Requête
ALTER TABLE a ENGINE=INNODB;
Requête
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Résultat
count(*)
----------
0