温馨提示×

Python数据库操作怎样处理事务

小樊
89
2024-10-24 19:02:37
栏目: 编程语言

在Python中,可以使用sqlite3库来处理SQLite数据库的事务。以下是一个示例代码,展示了如何在Python中使用sqlite3库进行事务处理:

import sqlite3

# 连接到数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

try:
    # 开始事务
    cursor.execute("BEGIN TRANSACTION")

    # 执行SQL语句
    cursor.execute("INSERT INTO test (col1, col2) VALUES (?, ?)", values1)
    cursor.execute("INSERT INTO test (col1, col2) VALUES (?, ?)", values2)

    # 提交事务
    conn.commit()
except:
    # 发生异常,回滚事务
    conn.rollback()
    raise
finally:
    # 关闭游标和连接
    cursor.close()
    conn.close()

在上面的示例代码中,我们首先连接到名为example.db的SQLite数据库。然后,我们使用cursor对象执行SQL语句,并使用BEGIN TRANSACTION开始事务。接下来,我们执行了两个INSERT语句,将数据插入到test表中。最后,我们使用conn.commit()提交事务。

如果在执行SQL语句时发生异常,我们会捕获该异常并使用conn.rollback()回滚事务。这样可以确保数据的一致性,避免因为异常而导致的数据不一致问题。

无论是否发生异常,我们都会在finally块中使用cursor.close()关闭游标,并使用conn.close()关闭数据库连接。这样可以确保资源的正确释放,避免资源泄漏问题。

0