Um eine InnoDB-Tabelle anzulegen, müssen wir beim Erstellen der Tabelle die Option 'type=InnoDB' verwenden:
mysql> create table statistik (Feld1 int) type=InnoDB; Query OK, 0 rows affected (0.41 sec)
Mit 'show table status from archiv' können wir überprüfen, ob MySQL den Tabellentyp 'InnoDB' auch akzeptiert hat. Bei der Tabelle 'statistik' bzw. dem Feld 'Type' sollten wir nun 'InnoDB' vorfinden. Falls dies nicht der Fall ist, d.h. wenn dort z.B. 'MYISAM' steht, stehen uns die InnoDB-Tabellen noch nicht zur Verfügung; in diesem Fall muss nochmals die Konfiguration überprüft werden.
Nun, nachdem wir die InnoDB-Tabelle erstellt haben, folgt an dieser Stelle ein einfaches Beispiel:
mysql> start transaction; Query OK, 0 rows affected (0.01 sec) mysql> insert into statistik () values(1); Query OK, 1 row affected (0.00 sec) mysql> insert into statistik () values(2); Query OK, 1 row affected (0.00 sec) mysql> insert into statistik () values(1); Query OK, 1 row affected (0.00 sec) mysql> select * from statistik; +------+ | Feld | +------+ | 1 | | 2 | | 1 | +------+ 3 rows in set (0.01 sec) mysql> rollback; Query OK, 0 rows affected (0.00 sec) mysql> select * from statistik; Empty set (0.00 sec) mysql> insert into statistik () values(1); Query OK, 1 row affected (0.01 sec) mysql> insert into statistik () values(4); Query OK, 1 row affected (0.01 sec) mysql> commit; Query OK, 0 rows affected (0.00 sec) mysql> rollback; Query OK, 0 rows affected (0.00 sec) mysql> select * from statistik; +------+ | Feld | +------+ | 1 | | 4 | +------+ 2 rows in set (0.00 sec)
Ich gebe zu, das Beispiel hat eine gewisse Länge erhalten, dürfte dafür aber beinahe selbsterklärend sein. Zunächst schalten wir die Transaktionen mit 'start transaction' ein. Nun fügen wir einige Datensätze der Tabelle 'statistik' hinzu. Mit einer 'select'-Abfrage sehen wir, dass die Datensätze vorhanden sind. Anschliessend zerstören wir mit 'rollback' unser 'Werk' und können feststellen, die Datensätze wurden doch nicht definitiv gespeichert.
Zum Abschluss haben wir erneut zwei Datensätze erfasst, wobei wir diese nun mit 'commit' definitiv ablegen. Selbst ein darauffolgendes Kommando 'rollback' ändert daran nichts mehr.
Merken müssen wir uns im Prinzip
nur, dass auf 'start transaction' immer entweder ein 'commit'
(Annehmen) oder 'rollback' (Verwerfen) folgen muss.