SQLite3 数据库处理事务非常简单。事务是一系列原子性的 SQL 操作,要么全部成功执行,要么全部失败回滚。在 SQLite3 中,可以使用 BEGIN TRANSACTION
、COMMIT
和 ROLLBACK
语句来管理事务。
以下是一个简单的示例:
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()
回滚事务,撤销所有更改。最后,我们关闭游标和连接。