使用for loop with SQL语句插入多个增量为1的值

2024-10-02 00:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用带有SQL insert语句的for循环来插入多行,其中每插入一行的值递增1?在本例中,我需要查询插入66行,同时countyvalue增加1,直到达到66,如:county0county1county2,等等,直到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

Tags: inforexecutesqlvaluerange语句conn
2条回答

您可以构建一个值列表,并使用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)]

运行此命令时,您会得到什么错误或结果

好像发生了一些错误

如果执行哪个语句出错。。。试一试

('county'i, 'value'i)

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

相关问题 更多 >

    热门问题