2010-01-13 13 views
8

Tengo una pregunta sobre python y sqlite3. Quiero colocar una tabla desde dentro de Python. El comandodrop table en python con sqlite3

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

No funciona.

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

hace el trabajo.

El método de ejecución permite la creación de tablas. Sin embargo, no los dejará caer? ¿Hay alguna razón para esto?

Respuesta

8

El comando cur.executescript emite un COMMIT antes de ejecutar el script proporcionado. Además, un CREATE ejecuta un COMMIT intrínsecamente. Tal vez tenga una transacción abierta que necesita confirmar antes de que se realicen los cambios.

+0

¡Gracias, eso tiene sentido! – nwhsvc

+0

¿Qué ocurre si drop table by sqlite3.connect ('disk_sqlite3'). Cursor(). Execute() funciona mientras sqlite3.connect (': memory:'). Cursor(). Execute() no? – hylepo