当前位置:Gxlcms > 数据库问题 > Python 执行 MySQL 事务

Python 执行 MySQL 事务

时间:2021-07-01 10:21:17 帮助过:3人阅读

mysql> rollback # 回滚事务 mysql> commit # 提交事务

数据库默认事务是自动提交的,也就是说,当我们执行 select,insert,update,delete 等操作时,就会自动提交事务,如果关闭事务的自动提交,那么我们执行完 select,insert,update,delete 操作后需要再执行 commit 来提交事务,否则就不会执行

二、游标

游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果,用法如下:

In [1]: import MySQLdb

In [2]: c = MySQLdb.connect(user=root, passwd=pzk123, db=mysql)    # 连接数据库

In [3]: cus = c.cursor()                      # 创建一个游标对象

In [4]: cus.execute(select * from user;)    # 使用execute()方法可以执行SQL语句,执行后的结果会存在缓冲区
Out[4]: 4L

In [5]: result1 = cus.fetchone()              # 可以使用fetchone()来查看缓冲区的一条记录

In [6]: result2 = cus.fetchmany(3)            # 可以使用fetchmany()来查看缓冲区的多条记录
 
In [7]: result3 = cus.fetchall()              # 可以使用fetchall()来查看所有的记录

 

三、根据游标执行 MySQL 事务

#!/usr/bin/env python
import MySQLdb

def connect_mysql():
    db_config = {
        host: 127.0.0.1,
        port: 3306,
        user: root,
        passwd: pzk123
    }
    c = MySQLdb.connect(**db_config)
    return c

if __name__ == __main__:
    c = connect_mysql()              # 首先连接数据库
    cus = c.cursor()                 # 生成游标对象
    sql = drop database test;      # 定义要执行的SQL语句
    try:
        cus.execute(sql)             # 执行SQL语句
        c.commit()                   # 如果执行成功就提交事务
    except Exception as e: 
        c.rollback()                 # 如果执行失败就回滚事务
        raise e
    finally:
        c.close()                    # 最后记得关闭数据库连接

 

 

 

 

 

            

Python 执行 MySQL 事务

标签:增加   隔离   let   需要   exception   except   用法   any   用户   

人气教程排行