mysql事务回滚的代码
时间: 2024-08-24 18:00:51 浏览: 50
MY SQL 事务隔离 查询:默认事务隔离级别
在MySQL中,事务通常用于保证数据的一致性和完整性,如果某个操作失败,整个事务可以被回滚到之前的状态。以下是使用Python的pymysql模块进行基本的事务管理及回滚的示例:
```python
import pymysql
# 连接到数据库
conn = pymysql.connect(host='localhost', user='username', password='password', db='database_name')
try:
# 创建一个游标对象并开始一个事务
cursor = conn.cursor()
cursor.start_transaction()
# 执行SQL操作,如插入或更新数据
sql1 = 'INSERT INTO table_name (column1, column2) VALUES (%s, %s)'
cursor.execute(sql1, ('value1', 'value2'))
# 另一个可能影响同一表的操作
sql2 = 'UPDATE table_name SET column3 = %s WHERE id = %s'
cursor.execute(sql2, ('new_value', 1))
# 如果所有操作都成功,提交事务
conn.commit()
except Exception as e:
# 发生错误时,回滚事务
print(f"Error occurred: {e}")
conn.rollback()
finally:
# 关闭游标和连接
cursor.close()
conn.close()
```
在这个例子中,如果`execute()`方法抛出异常,`rollback()`会将事务回滚到最初的未提交状态。如果所有操作都顺利,`commit()`会保存更改。
阅读全文