2010-01-13 16 views
8

Ho una domanda su python e sqlite3. Voglio rilasciare una tabella da Python. Il comandodrop table in python con sqlite3

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

Non funziona.

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

fa il lavoro.

Il metodo di esecuzione consente la creazione di tabelle. Tuttavia, non li lascerà cadere? C'è una ragione per questo?

risposta

8

Il comando cur.executescript emette un COMMIT prima di eseguire lo script fornito. Inoltre un CREATE esegue uno COMMIT intrinsecamente. Forse hai una transazione aperta che deve essere confermata prima che le modifiche abbiano luogo.

+0

Grazie, ha senso! – nwhsvc

+0

Cosa succede se drop table di sqlite3.connect ('disk_sqlite3'). Cursor(). Execute() funziona mentre sqlite3.connect (': memory:'). Cursor(). Execute() no? – hylepo