pymysql事务回滚
时间: 2023-12-03 11:40:29 浏览: 126
spring 简单实例 事务回滚
4星 · 用户满意度95%
在 PyMySQL 中,可以使用事务来确保一组 SQL 语句要么全部执行成功,要么全部执行失败。如果其中任何一个 SQL 语句执行失败,整个事务都将回滚到最初的状态。以下是一个 PyMySQL 事务回滚的例子:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', database='testdb')
# 创建游标对象
cursor = conn.cursor()
try:
# 开始事务
cursor.execute('START TRANSACTION')
# 执行 SQL 语句
insert_sql1 = "INSERT INTO students (name, age, gender) VALUES ('Tom', 18, 'M')"
cursor.execute(insert_sql1)
insert_sql2 = "INSERT INTO scores (name, course, score) VALUES ('Tom', 'Math', 90)"
cursor.execute(insert_sql2)
# 提交事务
conn.commit()
except Exception as e:
# 回滚事务
conn.rollback()
print('事务回滚,原因:', e)
finally:
# 关闭游标和连接
cursor.close()
conn.close()
```
在上面的例子中,我们使用 `START TRANSACTION` 开始了一个事务,然后执行了两个 SQL 语句。如果其中任何一个 SQL 语句执行失败,整个事务都将回滚到最初的状态。在 `try` 块中,我们使用 `conn.commit()` 提交了事务。如果 `try` 块中的任何代码引发了异常,我们就会在 `except` 块中回滚事务。最后,我们使用 `cursor.close()` 和 `conn.close()` 关闭了游标和连接。
阅读全文