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()
回滚事务,撤销所有更改。最后,我们关闭游标和连接。