#ROLLBACK
# 通用描述
ROLLBACK用于回滚一个事务。以下为不指定SAVEPOINT时的回滚规则:
- 执行ROLLBACK操作前,用户可以实时看到自己修改后的数据,其他用户无法看到。
- 执行ROLLBACK操作时,系统将Data Buffer里的数据恢复为修改之前的值,同时清除事务所在会话所有的SAVEPOINT,释放本事务级别的所有锁,本次事务结束。
- 执行ROLLBACK操作后,所有用户都只能看到修改前的数据。
在YashanDB中,系统发生任何异常情况时,均会自动调用ROLLBACK。
分布式部署中,ROLLBACK等同于ROLLBACK WORK,且除此之外的其他选项均不适用于分布式部署。
# 语句定义
rollback::=
# work
该语句用于和标准SQL的语法兼容,无实际意义。
# to savepoint
该语句用于回滚指定保存点之后的操作,执行此语句时:
- 系统将Data Buffer里的数据恢复为该保存点时的数值。
- 清除该保存点之后的所有的SAVEPOINT。
- 释放该保存点之后的所有事务级别锁。
- 不结束事务。
示例
ROLLBACK TO SAVEPOINT sa_area_1;