事务 commit / rollback

57.20 事务 commit / rollback

多条 SQL 作为一个整体:全成功 commit,出错 rollback。

PyMySQL 默认 autocommit=False,增删改后需 commit。

事务示例

import pymysql

conn = pymysql.connect(host='127.0.0.1', user='root', password='root', database='py_demo', charset='utf8mb4')
try:
    with conn.cursor() as cur:
        cur.execute('UPDATE students SET score=score+1')
    conn.commit()
except Exception:
    conn.rollback()
    raise
finally:
    conn.close()