一、事务基础
1.1 什么是事务
事务(Transaction)是数据库操作的基本单位,它是一组不可分割的操作序列,要么全部执行成功,要么全部不执行。
1.2 事务基本操作
-- 开始事务
BEGIN;
-- 或
START TRANSACTION;
-- 执行操作
INSERT INTO accounts (user_id, balance) VALUES (1, 1000);
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
-- 设置事务特性
BEGIN ISOLATION LEVEL SERIALIZABLE;
BEGIN READ ONLY;
BEGIN ISOLATION LEVEL READ COMMITTED READ WRITE;
-- 保存点(Savepoint)
BEGIN;
INSERT INTO users (name) VALUES ('Alice');
SAVEPOINT sp1;
INSERT INTO users (name) VALUES ('Bob');
-- 发现错误,回滚到保存点
ROLLBACK TO SAVEPOINT sp1;
-- Bob 的插入被回滚,Alice 保留
INSERT INTO users (name) VALUES ('Charlie');
COMMIT;
-- 释放保存点
RELEASE SAVEPOINT sp1;
2026/3/20大约 15 分钟