首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >executemany(sql,value)不会执行。python pyodbc

executemany(sql,value)不会执行。python pyodbc
EN

Stack Overflow用户
提问于 2022-08-24 00:22:00
回答 1查看 36关注 0票数 0
代码语言:javascript
复制
def fast_execute():
    mydb = pyodbc.connect(connection_string,autocommit=True)
    mycursor = mydb.cursor()
    mycursor.execute("use care_new")
    mycursor.execute("truncate dummytable")
    print('executed 1')
    mycursor.fast_executemany = True
    print('executed 2')
    query = "insert into dummytable(ID, Name) values(?,?)"
    value =  [((f'{i}'),(f'Names{str(i)}'),) for i in range(10000)]
    t0 = time.time()
    print('executed 3')
    mycursor.executemany(query, value)
    print('executed 4')
    print(f'{time.time() - t0:.1f} seconds for fast execute many')
    mydb.close()

输出

代码语言:javascript
复制
executed 1
executed 2
executed 3

我不明白为什么程序不执行mycursor.executemany(query,value)和发布步骤。

如果我注释掉mycursor.fast_executemany = True行,它可以正常工作。但这大约需要45秒,因为我要处理10000张唱片。

我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-08-24 01:03:27

在元组列表中嵌套的级别太多了。插入的每一行都是由2个元素组成的普通元组。

也不需要将ID格式化为字符串。

代码语言:javascript
复制
value =  [(i, f'Names{str(i)}') for i in range(10000)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73466193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档