Python 中如何使用 MySQLdb 模块进行事务处理

2023-04-04 00:00:00 模块 如何使用 事务处理

在 Python 中使用 MySQLdb 模块进行事务处理需要以下步骤:

  1. 导入 MySQLdb 模块
  2. 连接数据库
  3. 创建游标
  4. 开始事务
  5. 执行 SQL 语句
  6. 提交事务或回滚事务
  7. 关闭游标
  8. 断开数据库连接

代码演示:

import MySQLdb

# 连接数据库
conn = MySQLdb.connect(
    host='localhost',
    port=3306,
    user='username',
    password='password',
    db='database'
)

# 创建游标
cursor = conn.cursor()

# 开始事务
try:
    # 提交前禁用自动提交模式
    conn.autocommit(False)

    # 执行 SQL 语句
    sql1 = "INSERT INTO users (name, email) VALUES ('pidancode', 'pidancode@gmail.com')"
    cursor.execute(sql1)

    sql2 = "UPDATE users SET email='pidancode@pidancode.com' WHERE name='pidancode'"
    cursor.execute(sql2)

    # 提交事务
    conn.commit()

    print("事务提交成功!")

except Exception as e:
    # 回滚事务
    conn.rollback()

    print("事务提交失败:", e)

# 关闭游标和数据库连接
cursor.close()
conn.close()

在以上代码中,我们使用了 conn.autocommit(False) 来关闭自动提交模式。这意味着我们需要手动提交事务,否则所有的 SQL 语句都将被忽略。

try 块中,我们执行了两个 SQL 语句并且没有出错。因此,我们使用 conn.commit() 提交事务,并且打印出了事务提交成功的消息。

如果执行 SQL 语句出错,我们就需要回滚事务并且打印出错误消息。在 except 块中,我们使用 conn.rollback() 回滚事务,并且打印出了错误消息。

最后,我们关闭了游标和数据库连接。

相关文章