#ROLLBACK

# 通用描述

ROLLBACK用于回滚一个事务。以下为不指定SAVEPOINT时的回滚规则:

  • 执行ROLLBACK操作前,用户可以实时看到自己修改后的数据,其他用户无法看到。
  • 执行ROLLBACK操作时,系统将Data Buffer里的数据恢复为修改之前的值,同时清除事务所在会话所有的SAVEPOINT,释放本事务级别的所有锁,本次事务结束。
  • 执行ROLLBACK操作后,所有用户都只能看到修改前的数据。

在YashanDB中,系统发生任何异常情况时,均会自动调用ROLLBACK。

分布式部署中,ROLLBACK等同于ROLLBACK WORK,且除此之外的其他选项均不适用于分布式部署。

# 语句定义

rollback::=

syntax
ROLLBACK WORK TO SAVEPOINT savepoint_name

# work

该语句用于和标准SQL的语法兼容,无实际意义。

# to savepoint

该语句用于回滚指定保存点之后的操作,执行此语句时:

  • 系统将Data Buffer里的数据恢复为该保存点时的数值。
  • 清除该保存点之后的所有的SAVEPOINT。
  • 释放该保存点之后的所有事务级别锁。
  • 不结束事务。

示例

ROLLBACK TO SAVEPOINT sa_area_1;
pdf-btn 下载文档
copy-btn 复制链接