2010-01-13 8 views
8

Ich habe eine Frage zu Python und sqlite3. Ich möchte eine Tabelle aus Python löschen. Der BefehlDrop-Tabelle in Python mit sqlite3

cur.execute('drop table if exists tab1') 

Funktioniert nicht.

cur.executescript('drop table if exists tab1;') 

erledigt den Job.

Die execute-Methode ermöglicht die Erstellung von Tabellen. Aber es wird sie nicht fallen lassen? Gibt es einen Grund dafür?

Antwort

8

Der Befehl cur.executescript gibt vor dem Ausführen des bereitgestellten Skripts eine COMMIT aus. Zusätzlich führt ein CREATE einen COMMIT intrinsisch aus. Vielleicht haben Sie eine offene Transaktion, die festgeschrieben werden muss, bevor Ihre Änderungen stattfinden.

+0

Danke, das macht Sinn! – nwhsvc

+0

Was ist, wenn Tabelle durch sqlite3.connect ('disk_sqlite3') löschen. Cursor(). Execute() funktioniert, während sqlite3.connect (': memory:') .cursor(). Execute() nicht? – hylepo