2017-10-10 1 views
0

Ich bin neu in MySQL und ich stehe vor einem sehr einfachen Problem mit MySQL. Ich erstelle eine Datenbank, die eine Schultabelle enthält, diese Tabelle enthält den Namen der Schule, Kontakt, Adresse, ID (Primärschlüssel). Ich muss einen Datensatz auf der Grundlage der Wahl des Benutzers ID löschen (diese Variable school_id aufrufen), so wie dies in einer mysql-Anweisung mit Python zu schreiben? Ich habe dies versucht, aber ich weiß, dass es falsch ist ->Python Mysql Löschen

print "Delete school" 
school_id = int(input('Please, enter an ID: ')) 
cursor.execute("DELETE FROM `schools` WHERE id = %s", (school_id,)) 

seine kein deleting.whats den Fehler

+1

Begehen Sie? – Mureinik

Antwort

1

Haben Sie die löschen begangen?

cursor.commit()

0

Wie schon gesagt von Joof höchstwahrscheinlich Sie die Änderung nicht begangen haben. Wenn es nicht hilft, würde ich versuchen, zuerst diese Anweisung in mysql auszuführen und zu sehen, ob es funktioniert, dann überprüfen Sie, ob Sie die richtige Verbindung zu Ihrer Datenbank haben.

Link zur Verwendung von SQL in Python. https://docs.python.org/3.6/library/sqlite3.html

+0

Ich habe die Datenbank verbunden – mutegeki

0

Es sei denn, Sie zu begehen, wird es nicht ausgeführt werden:

cursor.commit()

Haben Sie Spaß.

+0

Ich habe db.commit() verwendet – mutegeki

0
print "Delete school" 
school_id = int(input('Please, enter an ID: ')) 
cursor.execute("DELETE FROM `schools` WHERE id = %s", (school_id,)) 
+0

Was passiert, wenn ich db.commit() mache – mutegeki

0

Von MySQL documentation auf commit:

es ist wichtig, diese Methode nach jeder Transaktion aufrufen, die Daten für die Tabellen modifiziert, die transaktionalen Speicher-Engines verwenden.

Sie müssen es nicht buchstäblich nach jeder Transaktion verwenden - es ist genug, wenn Sie es einmal nennen, nachdem alle execute genannt werden:

def a(): 
    cursor.execute('insert ...') # cursor object 
    cursor.execute('update ...') 
    connection.commit() # connection object 

def b(): 
    cursor.execute('delete ...') 
    connection.commit()