使用带SQL语句的for循环插入多个以1

时间:2020-03-30 03:21:49

标签: python for-loop

如何在SQL插入语句中使用for循环插入多行,每行插入值增加1?在此示例中,我需要查询在countyvalue递增一的同时插入66行,直到达到66,例如:county0county1county2等等,直至county66value也是如此。这就是我所拥有的:

for i in range (0, 65):
    conn.execute('INSERT INTO myTable (County, Value) VALUES (?, ?)', ('county'i, 'value'i))
    conn.autocommit = True
    executeImport = False

2 个答案:

答案 0 :(得分:0)

运行此命令时会遇到什么错误或得到的结果?

好像发生了一些错误?

如果执行哪条语句出错,请尝试

('county'i,'value'i)

with('county'+ i,'value'+ i)

答案 1 :(得分:0)

您可以建立一个值列表并使用executemany()函数进行批量插入,而不是逐行插入。这样会更有效率。因此,您可以修改代码以执行以下操作:

values = [('county{}'.format(i), 'value{}'.format(i)) for i in range(0,67)]
c = conn.cursor()
c.executemany("INSERT INTO myTable(County, Value) VALUES(?,?)", values)
conn.commit()

如果您拥有Python 3.6及更高版本,则可以使用f字符串构建值列表:

values = [(f'county{i}', f'value{i}') for i in range(0,67)]