Подтвердить что ты не робот

Как использовать подготовленные инструкции для вставки MULTIPLE записей в SQlite с помощью Python/Django?

Как использовать подготовленный оператор для вставки MULTIPLE записей в SQlite с помощью Python/Django?

4b9b3361

Ответ 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.