Python sqlite3 parametriza tabla de caída

Tengo un problema con la eliminación de la tabla sqlite3 en python. Estoy usando sqlite3 módulo estándar sqlite3 .

 self.conn = sqlite3.connect(...) sql = """ drop table ? """ self.conn.execute( sql, (u'table_name',) ) 

me da OperationalError: near "?": syntax error

Cuando cambio sql a:

 sql = """ drop table table_name """ 

funciona bien.

No puede utilizar parámetros para nombres de tablas ni nombres de columnas.

Alternativamente, puede convertirlo en un proceso de dos pasos, por ejemplo:

 sql = """ drop table %s """ % a_table_name self.conn.execute( sql ) 

Y si lo está haciendo, es posible que desee especificar explícitamente qué tablas se pueden eliminar …

 TABLES_THAT_CAN_BE_DROPPED = ('table_a','table_b',) if a_table_name in TABLES_THAT_CAN_BE_DROPPED: sql = """ drop table %s """ % a_table_name self.conn.execute( sql ) else: pass # handle creatively