0
点赞
收藏
分享

微信扫一扫

在Python的`sqlite3`库中,如果你想回滚一个事务,你可以使用`conn.rollback()`方法。这将撤销自上次调用`conn.commit()`以来对数据库所做的所有更改。 下面是一

JamFF 2023-11-08 阅读 51

在Python的sqlite3库中,如果你想回滚一个事务,你可以使用conn.rollback()方法。这将撤销自上次调用conn.commit()以来对数据库所做的所有更改。

下面是一个例子,展示了如何使用conn.rollback()

import sqlite3

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

# 创建一个Cursor:
cursor = conn.cursor()

try:
    # 执行一条SQL语句,插入一条记录:
    cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')

    # 引发一个错误:
    raise Exception('some error')

except Exception as e:
    # 发生错误,回滚事务:
    conn.rollback()
    print('Error:', e)

finally:
    # 关闭Cursor:
    cursor.close()
    # 关闭Connection:
    conn.close()

在这个例子中,我们尝试插入一条记录,然后立即引发一个错误。由于我们在except块中调用了conn.rollback(),所以插入操作被撤销,数据库的状态回到了事务开始之前的状态。

请注意,conn.rollback()只能撤销自上次调用conn.commit()以来的更改。如果你在调用conn.rollback()之前没有调用conn.commit(),那么conn.rollback()将撤销所有未提交的更改。😊

举报

相关推荐

0 条评论