Python中使用Sqlite进行事务操作的示例

发表时间: 2023-09-07 18:24

以下是一个使用Python和SQLite进行多表数据写入的简单示例,使用了事务来确保数据的一致性:

import sqlite3# 连接到SQLite数据库conn = sqlite3.connect('mydatabase.db')# 创建游标cursor = conn.cursor()try:    # 开始事务    conn.execute('BEGIN TRANSACTION')    # 执行插入操作    cursor.execute("INSERT INTO table1 (column1, column2) VALUES (?, ?)", ('value1', 'value2'))    cursor.execute("INSERT INTO table2 (column1, column2) VALUES (?, ?)", ('value3', 'value4'))    # 提交事务    conn.commit()    print("事务提交成功")except Exception as e:    # 回滚事务    conn.rollback()    print("事务回滚:", str(e))finally:    # 关闭游标和连接    cursor.close()    conn.close()

在这个例子中,我们首先使用sqlite3库连接到SQLite数据库。然后,我们创建一个游标来执行SQL语句。

try块中,我们开始事务,通过执行conn.execute('BEGIN TRANSACTION')来实现。然后,我们使用cursor.execute()方法执行插入操作,将数据插入到table1和table2中。

如果所有的插入操作都成功执行,我们使用conn.commit()提交事务,并打印出"事务提交成功"的消息。

如果在执行插入操作时出现任何异常,我们使用conn.rollback()回滚事务,并打印出"事务回滚"的消息,同时打印出异常信息。

最后,我们关闭游标和连接。

请注意,您需要根据您的实际情况替换示例中的数据库文件名、表名和列名。

此外,您还需要根据您的表结构和数据进行适当的更改。