MySQL und seine Transaktion. :(



  • Hallo.

    Ich habe verushct mit MySQL 4.0.15-nt eine Transaction zu machen.
    Laut der Doku, werden Transaktionen von den Datenabnk-Typen InnoDB und BDB (BerkeleyDB) unterstützt.

    Hab dann mit dem SQL-Statement:

    create table testofix(
    Name char(40),
    Vorname char(50),
    Konto int(20)) type =BDB;
    

    Eine neue Tabelle erstellt, vom Typ BDB.

    Dann habe ich den SQL Befehl benutzt:

    SET AUTOCOMMIT=0;
    START TRANSACTION;
    insert into testofix (Name,Vorname,Konto) values ("Ehmann","Andres",7102344);
    insert into testofix (Name,Vorname,Konto) values ("Maier","Peter",45333544);
    ROLLBACK;
    

    MySQL gibt dann die MEldung raus:

    MySQL Server schrieb:

    ERROR 1196: Warning: Some non-transactional changed tables couldn't be rolled back

    Warum soll das jetzt nicht gehen?
    Wie mache ich das richtig?
    Die Daten bleiben aber vorhanden. 😞



  • Hast du die BerkeleyDB überhaupt aktiviert.

    Meine XAMPP hat es z.B: nicht. Schau mal welchen Typ deine Tabellen haben. Nur weil du BDB angegeben hast muss MySQL nicht zwangsweise eine BDB-Tabelle anlegen wenn es nicht aktiviert ist.



  • Hi.
    Jo, habs gerade mal geschaut. Es war auch so.
    Wo drin ist der unterschied von MyISAM und BDB (außer Transactions)??
    Welche Vorteile und Nachteile haben die?



  • Das sie nicht von MySQL stammen. Somit funktionieren Reparaturfunktionen nicht die MyISAM brauchen. Transaction hast du gesagt. Sie sind aber lt. MySQL AB stabil.
    Am besten mal auf www.mysql.de schauen. Dort werden Sie geholfen.


Anmelden zum Antworten