欢迎访问宙启技术站
智能推送

Python中使用MySQLdb库实现数据库事务的操作实例

发布时间:2023-12-27 15:01:06

在Python中,可以使用MySQLdb库来连接和操作MySQL数据库。事务是一组数据库操作,要么全部成功执行,要么全部不执行。在MySQL中,事务是通过START TRANSACTION、COMMIT和ROLLBACK语句来实现的。

下面是一个使用MySQLdb库实现数据库事务的简单示例:

import MySQLdb

def insert_data(cursor, data):
    sql = "INSERT INTO students(name, age) VALUES (%s, %s)"
    cursor.execute(sql, data)

# 连接数据库
conn = MySQLdb.connect(host='localhost', user='root', password='123456', database='test')
cursor = conn.cursor()

# 开始事务
conn.autocommit(False)

try:
    # 执行数据库操作
    insert_data(cursor, ("Alice", 20))
    insert_data(cursor, ("Bob", 22))
    insert_data(cursor, ("Charlie", 18))

    # 提交事务
    conn.commit()
    print("事务提交成功")
except Exception as e:
    # 处理异常并回滚事务
    conn.rollback()
    print("事务回滚: ", e)

# 关闭数据库连接
conn.close()

在上面的示例中,首先通过MySQLdb库连接到MySQL数据库。然后使用autocommit(False)来关闭自动提交事务的功能,表示后续的数据库操作将作为一个事务来执行。

try代码块中,我们执行了三个对数据库的插入操作,如果所有操作都成功执行,则提交事务,否则回滚事务并打印异常信息。

最后,关闭数据库连接。

上述示例展示了如何使用MySQLdb库实现数据库事务的基本操作。

需要注意的是,MySQLdb是一个比较老旧的库,并且只支持Python2.x版本。在Python3中,更推荐使用pymysql库或mysql-connector-python库来连接和操作MySQL数据库。这两个库也提供了类似的事务操作方法。