如何使用预处理语句在SQlite中使用Python / Django插入MULTIPLE记录?

时间:2011-04-11 04:56:14

标签: python django sqlite

如何使用预处理语句在SQlite中使用Python / Django插入MULTIPLE记录?

3 个答案:

答案 0 :(得分:37)

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)

答案 1 :(得分:6)

您可以使用executemany()并传递迭代器对象,例如插入100个整数及其正方形:

def my_iter(x):
    for i in range(x):
        yield i, i*i

cursor.executemany("INSERT INTO my_table VALUES (?, ?)", my_iter(100))

答案 2 :(得分:-5)

如果您尝试仅使用PreparedStatement插入一行,

cursor.execute("""INSERT INTO table_name ('column1', 'column2') VALUES (?, ?)""", ("value1", "value2"))

应该也可以。值以python元组的形式传递。