Python sqlite3 параметризованная таблица перетаскивания - PullRequest
5 голосов
/ 10 апреля 2011

У меня проблема с удалением таблицы sqlite3 в python.Я использую стандартный sqlite3 модуль.

self.conn = sqlite3.connect(...)

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

дает мне OperationalError: near "?": syntax error

Когда я изменяю sql на:

sql = """ drop table table_name """

, он работает нормально.

1 Ответ

9 голосов
/ 10 апреля 2011

Нельзя использовать параметры для имен таблиц или столбцов.

В качестве альтернативы вы могли бы сделать это двухэтапным процессом, например ::

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

И если вы делаете это, вы можете явно указать, какие таблицы можно удалить ...

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
...