SAVEPOINT
功能描述
SAVEPOINT语句用于在事务中设置保存点。
保存点提供了一种灵活的回滚,事务在执行中可以回滚到某个保存点。在该保存点以前的操作有效,而以后的操作被回滚掉。一个事务中可以设置多个保存点。
注意事项
回滚到保存点后事务状态和设置保存点时事务的状态一致,在保存点以后对数据库的操作被回滚。
语法格式
SAVEPOINT savepoint_name
参数说明
savepoint_name
回滚点名。
示例
回滚事务到保存点。
--删除表bonus_2017。 DROP TABLE IF EXISTS bonus_2017;
--创建表bonus_2017。 CREATE TABLE bonus_2017(staff_id INT NOT NULL, staff_name CHAR(50), job VARCHAR(30), bonus NUMBER);
--向表bonus_2017中插入记录1。 INSERT INTO bonus_2017(staff_id, staff_name, job, bonus) VALUES(23,'limingwang','developer',5000); --提交事务。 COMMIT;
--设置保存点s1。 SAVEPOINT s1;
--向表bonus_2017中插入记录2。 INSERT INTO bonus_2017(staff_id, staff_name, job, bonus) VALUES(24,'liyuyu','tester',7000);
--设置保存点s2。 SAVEPOINT s2;
--查询表bonus_2017的数据。 SELECT * FROM bonus_2017; STAFF_ID STAFF_NAME JOB BONUS ------------ -------------------------------------------------- ------------------------------ ---------------------------------------- 23 limingwang developer 5000 24 liyuyu tester 7000 2 rows fetched.
--回滚到保存点s1。 ROLLBACK TO SAVEPOINT s1;
--查询表bouns_2017的数据。 SELECT * FROM bonus_2017; STAFF_ID STAFF_NAME JOB BONUS ------------ -------------------------------------------------- ------------------------------ ---------------------------------------- 23 limingwang developer 5000 1 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论