时间:2021-07-01 10:21:17 帮助过:3人阅读
数据库默认事务是自动提交的,也就是说,当我们执行 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 用户