# Rollback funktioniert nicht



## athikka (9. Dez 2010)

Hallo

Ich habe ein kleines emailprogramm das meine Mails vom Server holt und in eine MySQL db speichert
Wenn nun ein fehler passiert (auch wenn selbst ausgelösst) mache ich im catch ein Rollback
Vorher hab ich natürlich auf autocommit false gesetzt und einen savepoint s erstellt...

Aber es macht nichts rückgängig... Und ich versteh es nicht...alle Transaktionen sind mit executeupdate gemacht worden... Ich will nur dass es nach einem Fehler auch bereits erfolgte Updates rückgängig mcaht...

Hat jemand eine Idee?


----------



## fastjack (9. Dez 2010)

Hast Du als Datenbanktyp InnoDB verwendet (myisam geht nämlich nicht für Transaktionen)?


----------



## athikka (9. Dez 2010)

hallo

wie meinst du InnoDB?
ich benutze MySQL...


----------



## Gast2 (9. Dez 2010)

Als Table Storage Engine musst du InnoDB auswählen:
MySQL :: MySQL 5.1 Referenzhandbuch :: 14.2 InnoDB-Tabellen


----------



## fastjack (9. Dez 2010)

Wenn Du eine Tabelle erstellt, wird per Default glaube ich MyIsam benutzt. Was Du brauchst ist allerdings InnoDB z.B.:


```
mysql>  CREATE TABLE example_innodb (
          id INT,
          data VARCHAR(100)
        ) TYPE=innodb;
```

type ist wichtig.


----------



## athikka (9. Dez 2010)

ah super danke

weißt du ob ich das irgendwie "nachändern" kann?
oder muss ich table ganz löschen und neu machen?


----------



## Gast2 (9. Dez 2010)

Du musst sie schon neuanlegen. Da hilft aber ein kleiner Trick über mysqldump, guck mal hier: Linux.com :: MySQL migration: MyISAM to InnoDB


----------



## athikka (9. Dez 2010)

hm okeeeee...

ich denke ich muss sie neu anlegen...
weil die mysql db liegt auf dem webhostingserver wo ich leider keine kommandozeile habe...


danke trotzdem


----------



## athikka (9. Dez 2010)

habe es ohne neuanlegen gerade geschafft mit:

ALTER TABLE `tabelle` ENGINE = InnoDB

thema abgeschlossen


----------



## Gast2 (9. Dez 2010)

Ah, ok. Das das mittlerweile mit ALTER TABLE geht wusste ich nicht. Hab auch schon viele Jahre nichts mehr mit MySQL gemacht. Schön dass das jetzt so einfach geht.


----------



## fastjack (9. Dez 2010)

Das muß neu sein...


----------

