版本:7.0.0

SAVEPOINT ​

功能描述 ​

SAVEPOINT是数据库事务管理中的关键功能,允许在事务内部设置多个回滚标记点,实现事务的部分回滚能力。其核心价值在于提升事务的灵活性和容错性。

注意事项 ​

回滚到保存点时,数据库会丢弃从该保存点之后的所有操作,但会保留该保留点之前已执行的修改。

语法格式 ​

SAVEPOINT savepoint_name

参数说明 ​

  • savepoint_name:保存点名。

示例 ​

回滚事务到保存点

--删除表reward_2025

DROP TABLE IF EXISTS reward_2025;

--创建表reward_2025

CREATE TABLE reward_2025(employee_id INT NOT NULL, employee_name CHAR(50), money_award NUMBER);

--写入数据1

INSERT INTO reward_2025(employee_id, employee_name, money_award) VALUES(1, 'zhangsan', 1200);

--设置保存点1

SAVEPOINT sn1;

--写入数据2

INSERT INTO reward_2025(employee_id, employee_name, money_award) VALUES(2, 'lisi', 2200);

--设置保存点2

SAVEPOINT sn2;

--查询表reward_2025的数据

SELECT * FROM reward_2025;

--回滚到保存点1

ROLLBACK TO SAVEPOINT sn1;

--查询表reward_2025的数据

SELECT * FROM reward_2025;

预期只能查到保存点1之前写入的数据1:

EMPLOYEE_ID EMPLOYEE_NAME MONEY_AWARD


1 zhangsan 1200

1 rows fetched.