400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
在当前事务中定义一个新的保存点。
SAVEPOINT savepoint_name
SAVEPOINT在当前事务中建立一个新的保存点。
保存点是事务内部的特殊标记,它允许回滚在建立事务后执行的所有命令,从而将事务状态恢复到保存点时的状态。
savepoint_name
使用 ROLLBACK TO SAVEPOINT 回滚到保存点。 使用 RELEASE SAVEPOINT 销毁一个保存点,并在建立保存点后保持命令执行的效果。
只能在事务块内部建立保存点。 事务中可以定义多个保存点。
要建立一个保存点,然后撤消建立保存点后执行的所有命令的效果:
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;
上面的事务将插入值1和3,但不插入2。
要建立并随后销毁一个保存点:
BEGIN;
INSERT INTO table1 VALUES (3);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (4);
RELEASE SAVEPOINT my_savepoint;
COMMIT;
上述事务将同时插入3和4。
建立另一个具有相同名称的保存点时,SQL要求自动删除一个保存点。 在 YMatrix 数据库中,保留了旧的保存点,尽管在回滚或释放时仅使用较新的保存点。 (释放较新的保存点将使较旧的保存点再次可用于ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT。) 否则,SAVEPOINT完全符合SQL。