Как использовать подготовленный оператор для вставки MULTIPLE записей в SQlite с помощью Python/Django?
Как использовать подготовленные инструкции для вставки MULTIPLE записей в SQlite с помощью Python/Django?
Ответ 1
http://docs.python.org/library/sqlite3.html#cursor-objects
У библиотек Python SQLite нет готовых объектов оператора, но они позволяют использовать параметризованные запросы и предоставлять более одного набора параметров.
Изменить: пример executemany
в соответствии с запросом:
values_to_insert = [(1,"foo"), (2, "bar"), (3, "baz")]
cursor.executemany("""
INSERT INTO some_table ('item_num', 'item_name')
VALUES (?, ?)""", values_to_insert)
Ответ 2
Вы можете использовать функцию executeemany() и передать объект-итератор, например. для вставки 100 целых чисел и их квадратов:
def my_iter(x):
for i in range(x):
yield i, i*i
cursor.executemany("INSERT INTO my_table VALUES (?, ?)", my_iter(100))
Ответ 3
Если вы пытаетесь вставить только одну строку, как в PreparedStatement,
cursor.execute("""INSERT INTO table_name ('column1', 'column2') VALUES (?, ?)""", ("value1", "value2"))
должен работать. Значения передаются как кортежи python.