温馨提示×

sqlite3数据库如何处理事务

小樊
81
2024-12-23 10:08:43
栏目: 云计算

SQLite3 数据库处理事务非常简单。事务是一系列原子性的 SQL 操作,要么全部成功执行,要么全部失败回滚。在 SQLite3 中,可以使用 BEGIN TRANSACTIONCOMMITROLLBACK 语句来管理事务。

以下是一个简单的示例:

import sqlite3

# 连接到 SQLite3 数据库(如果不存在,将创建一个新文件)
conn = sqlite3.connect('example.db')

# 创建一个游标对象
cursor = conn.cursor()

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

    # 执行一些 SQL 操作
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30))
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Bob', 25))

    # 提交事务,使更改生效
    conn.commit()

except sqlite3.Error as e:
    print(f"An error occurred: {e}")
    # 发生错误时回滚事务
    conn.rollback()

finally:
    # 关闭游标和连接
    cursor.close()
    conn.close()

在这个示例中,我们首先连接到名为 example.db 的 SQLite3 数据库。然后,我们使用 BEGIN TRANSACTION 开始一个事务。接下来,我们执行两个 INSERT 语句,将用户添加到数据库中。如果所有操作都成功执行,我们使用 conn.commit() 提交事务。如果在执行过程中发生任何错误,我们将捕获异常并使用 conn.rollback() 回滚事务,撤销所有更改。最后,我们关闭游标和连接。

0