Prawdopodobnie tabela jest domyślnie tworzona z silnikiem pamięci MyISAM. Silnik pamięci MyISAM nie obsługuje transakcji.
Utwórz tabelę
CREATE TABLE a ( id SERIAL PRIMARY KEY) ENGINE = MYISAM;
Zapytanie
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Wynik
liczba(*)
1
Tworzenie tabeli InnoDB
Zapytanie
ALTER TABLE a ENGINE=INNODB;
Zapytanie
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Wynik
count(*)
----------
0