python操作mysql数据库,一次性执行多条语句

在构建测试场景时,为了提高效率,可以通过设置`closeConn`参数来避免频繁连接数据库。本文介绍了如何在Python中使用pymysql一次性执行多条SQL语句,虽然可以批量传递,但实际执行时仍需逐条进行。需要注意的是,返回值为最后一条命令的结果,如update或delete则返回空元组,并且每条SQL语句后必须加分号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:在构造测试场景的时候,往往会出现一次性要执行多条sql语句的情况,这时候为了避免每执行一条sql就连接一次数据库,可以加入 closeConn的参数,用以提高执行效率
1、前面的链接数据库,创建游标就不过多说明,下面直接放上代码:
    def __init__(self,dbName = None):
        self.currentConn = None
        self.host = "your host"
        self.user = "username"
        self.password = "password"
        self.dbName = dbName
        self.charset = "utf8mb4"
        self.resultlist = []

    def open(self):  # 创建连接
        try:
            conn = pymysql.connect(
                host = self.host,
                user = self.user,
                password = self.password,
                db = self.dbName,
                charset=self.charset,
            )
        except pymysql.err.OperationalError as e:
            logger.exception("数据库连接失败!")
            if "Errno 10060" in str(e) or "2003" in str(e):
                logger.error(
Python中可以使用批量插入的方式一次性插入多条语句数据库。 首先,需要安装Python数据库操作模块,比如MySQLdb、psycopg2、pymysql等,以便能够连接数据库操作数据。 其次,可以使用循环的方式生成多个插入语句的参数列表。例如,创建一个包含多个元组的列表,每个元组代表一条语句的参数。 然后,可以使用数据库操作模块提供的executemany()方法执行批量插入。这个方法接收两个参数,第一个参数是插入语句,第二个参数是参数列表。 最后,需要进行事务的提交。可以使用数据库连接对象提供的commit()方法。 下面是一个简单的示例,演示了如何使用Python进行批量插入多条语句MySQL数据库: ```python import MySQLdb # 连接数据库 conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test') cursor = conn.cursor() # 创建插入语句 insert_sql = "INSERT INTO table_name (column1, column2) VALUES (%s, %s)" # 创建参数列表 values = [ ('value1', 'value2'), ('value3', 'value4'), ('value5', 'value6') ] try: # 执行批量插入 cursor.executemany(insert_sql, values) # 提交事务 conn.commit() print("插入成功") except Exception as e: # 发生错误时回滚 conn.rollback() print(str(e)) finally: # 关闭数据库连接 cursor.close() conn.close() ``` 以上示例中,首先连接到数据库,然后创建插入语句,然后创建参数列表。接下来执行批量插入,如果成功则提交事务,失败则回滚。最后关闭数据库连接。 这样就可以一次性插入多条语句数据库。注意要根据实际情况修改表名、列名、参数等。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值