Из документации 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
Но если я перестану использовать параметризованные заполнители, это сработает.