Seite 1 von 1
"insert into"funktioniert nicht bei Datenbanken Typ InnoDB
Verfasst: Mittwoch 4. Januar 2012, 15:55
von Michaela
Hallo,
mein Problem ist, dass seitdem ich eine neue Version von XAMPP auf den Rechnern habe (Betriebssystem Windows 7) und wie sonst mit python und pymysql auf die Datenbanken zugreife, dass alles funktioniert, nur der Befehl "insert into" funktioniert nur bei den alten Tabellen vom Typ MyISAM. Bei den Tabellen vom Typ InnoDB wird der Datensatz zwar mitgezählt (z. B. bei "autoincrement"), aber nicht eingefügt!!!
Kann mir jemand helfen?
Michaela
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:01
von BlackJack
@Michaela: Vielleicht irgendwo ein `commit()` vergessen was bei Datenbanken die keine Transaktionen können nicht weiter auffällt!?
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:05
von Michaela
Nein, es geht um ganz einfachen Quelltext,
z. B.:
from pymysql import *
def db():
con = connect(host="localhost", user="root", passwd="")
print "verbunden"
cur = con.cursor()
cur.execute("use firma")
cur.execute("insert into projekt (Projnr, Kurzbezeichnung) Values (3, 'Spass')")
con.close()
db()
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:25
von BlackJack
@Michaela: Und da fehlt ganz offensichtlich das `commit()` damit die Transaktion auch in die DB festgeschrieben wird.
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:35
von Michaela
Wie schon erwähnt, bei den Tabellen vom Typ MyISAM klappt es so ganz simple, auch ohne commit(), werde es natürlich ausprobieren ..., melde mich dann noch mal!
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:52
von Michaela
@BlackJack:
Vielen Dank

, das war's wirklich!!
Dass der Typ so einen Unterschied macht ...
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:53
von deets
Ja, das ist ja auch klar - denn es ist genau die Transaktionsfaehigkeit, die diese beiden Tabellentypen unterscheidet.
Re: "insert into"funktioniert nicht bei Datenbanken Typ Inno
Verfasst: Mittwoch 4. Januar 2012, 16:57
von BlackJack
@Michaela: Ich würde übrigens sagen dass hier MyISAM aus dem Rahmen fällt, denn die meisten DBMS können Transaktionen und erfordern deshalb auch, dass man sich im Code in irgend einer Weise damit auseinander setzt. Bei Python-Quelltext der das nicht macht, würde ich soweit gehen und sagen der ist fehlerhaft, selbst wenn er zufällig funktioniert wenn man eine nicht-transaktionsfähige DB oder Tabellenart verwendet.