如何在SQL插入语句中使用for循环插入多行,每行插入值增加1?在此示例中,我需要查询在county
和value
递增一的同时插入66行,直到达到66,例如:county0
,county1
,county2
等等,直至county66
。 value
也是如此。这就是我所拥有的:
for i in range (0, 65):
conn.execute('INSERT INTO myTable (County, Value) VALUES (?, ?)', ('county'i, 'value'i))
conn.autocommit = True
executeImport = False
答案 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)]