将记录插入到包含大量列的SQLite表中

时间:2014-04-23 13:27:34

标签: python-2.7 sqlite

使用Python 2.7.6,如果我想使用存储在变量中的值(例如整数)将单个记录添加到SQLite数据库,我可以执行以下操作:

import sqlite3
w,x,y,z = 0,1,2,3
conn = sqlite3.connect('mydb.db')
conn.execute('CREATE TABLE IF NOT EXISTS data (v1 INTEGER, v2 INTEGER, v3 INTEGER, v4 INTEGER)')
conn.execute('INSERT INTO data VALUES (?,?,?,?)', (w,x,y,z))
conn.commit()
conn.close()

如果要插入单个记录中的值的数量很大(例如100,200,任意?),并存储在序列或集合(如列表,队列,数组等)中,该怎么办?有没有办法修改上面的INSERT语法,以便我只能指定集合的​​名称而不是非常长的逐项列表?在这种情况下,任何特定的集合类型是否更方便使用?

编辑:上面的代码示例有四个值进入表中的四列。对于有关较大数据的问题,假设数据库表中的列数与要插入的值一样多。

Edit2:我想插入一个由大集合中的值组成的记录。我不想插入许多记录(例如executemany)。

1 个答案:

答案 0 :(得分:1)

在您的代码中,(w,x,y,z)是一个四元素元组;这是你的变量。

您也可以使用列表:

my_little_list = [w, x, y, z]
cursor.execute("...", my_little_list)