Как создать таблицу SQLite с помощью библиотеки Python sqlite3 с параметризованными заполнителями? - PullRequest
0 голосов
/ 29 декабря 2018

Из документации Python (https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.execute), Я должен иметь возможность выполнять операторы SQL с помощью параметризованных заполнителей. Тем не менее, приведенный ниже код не работает.

import sqlite3

conn = sqlite3.connect("temp.db")
c = conn.cursor()

c.execute("create table ? (foo text, bar text)", ("table_name",))

conn.commit()
conn.close()

Я получаю ошибку:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    c.execute("create table ? (foo text, bar text)", ("table_name",))
sqlite3.OperationalError: near "?": syntax error

Но если я перестану использовать параметризованные заполнители, это сработает.

1 Ответ

0 голосов
/ 29 декабря 2018

Одним словом - нет.Вы можете только параметризировать значения, а не имена объектов (в данном случае, имя таблицы).Если вы хотите сделать что-то подобное, вам придется прибегнуть к манипуляции со строками, например:

c.execute("create table %s (foo text, bar text)" % ("table_name"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...