更新时间:2024-11-27 GMT+08:00

RELEASE SAVEPOINT

功能描述

RELEASE SAVEPOINT删除当前事务先前定义的保存点。

保存点删除后便无法再作为回滚点使用,除此之外没有其它用户可见的行为。删除保存点并不能撤销在保存点建立起来之后执行的命令的影响。要撤销那些命令可以使用ROLLBACK TO SAVEPOINT 。在不再需要的时候删除保存点可以令系统在事务结束之前提前回收一些资源。

RELEASE SAVEPOINT也删除所有在指定的保存点建立之后的所有保存点。

注意事项

  • 不能RELEASE没有定义的保存点,语法上会报错。
  • 如果事务在回滚状态,则不能释放保存点。
  • 如果多个保存点拥有同样的名字,只释放最近定义的保存点。

语法格式

1
RELEASE [ SAVEPOINT ] savepoint_name;

参数说明

savepoint_name

要删除的保存点的名字

示例

建立并随后销毁一个保存点:

1
2
3
4
5
6
7
BEGIN;
    CREATE TABLE IF NOT EXISTS table1 (a int,b int);
    INSERT INTO table1 VALUES (3);
    SAVEPOINT my_savepoint;
    INSERT INTO table1 VALUES (4);
    RELEASE SAVEPOINT my_savepoint;
COMMIT;