首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用for循环在python中执行多个SQL语句

问如何使用for循环在python中执行多个SQL语句
EN

Stack Overflow用户
提问于 2011-02-11 00:46:38
回答 2查看 4.1K关注 0票数 0

我有SQl语句列表,当运行单个语句时,它会运行它给出的循环:

pyodbc.ProgrammingError:('42000',"42000ODBC 5.1 DriverYou在您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解要在第1 (1064)行'Sql_2‘附近使用的正确语法(SQLExecDirectW)")

代码语言:javascript
复制
SQl = """Select something"""
    SQl_2 = """Select something"""
    SQl_3 = """Select something"""


Sqls= ('Sql','Sql_2','Sql_3')

for x in Sqls:
    print x
    use = Sql_2  
    # use = x
    cxn = pyodbc.connect('DSN=MySQL;PWD=xxx') 
    csr = cxn.cursor()
    csr.execute(use)
    fetch = csr.fetchall()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-11 00:49:20

您的元组应该是

代码语言:javascript
复制
Sqls = (Sql,Sql_2,Sql_3)

而不是

代码语言:javascript
复制
Sqls = ('Sql','Sql_2','Sql_3')
票数 6
EN

Stack Overflow用户

发布于 2011-02-11 01:02:24

您还应该将连接到数据库以及创建游标移出for循环,因为这是不必要的开销。

代码语言:javascript
复制
SQl = """Select something"""
SQl_2 = """Select something"""
SQl_3 = """Select something"""

Sqls = (Sql, Sql_2, Sql_3)
cxn = pyodbc.connect('DSN=MySQL;PWD=xxx') 
csr = cxn.cursor()

for x in Sqls:
    print x
    use = Sql_2  
    # use = x    
    csr.execute(use)
    fetch = csr.fetchall()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4960035

复制
相关文章

相似问题

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