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
"insert into"funktioniert nicht bei Datenbanken Typ InnoDB
@Michaela: Vielleicht irgendwo ein `commit()` vergessen was bei Datenbanken die keine Transaktionen können nicht weiter auffällt!?
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()
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()
@Michaela: Und da fehlt ganz offensichtlich das `commit()` damit die Transaktion auch in die DB festgeschrieben wird.
Ja, das ist ja auch klar - denn es ist genau die Transaktionsfaehigkeit, die diese beiden Tabellentypen unterscheidet.
@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.