本文介绍回滚事务的操作。
语句语法格式
回滚一个事务指将事务的修改全部撤销,可以回滚当前整个未提交事务,也可以回滚到事务中任意一个保存点。
回滚整个事务:
所有的修改会被丢弃。
清除所有保存点。
释放事务持有的所有锁。
语句语法格式如下:
ROLLBACK;回滚到某个保存点,可以使用
ROLLBACK TO SAVEPOINT语句。事务不会结束。
保存点之前的修改被保留,保存点之后的修改被丢弃。
清除保存点之后的保存点(不包括保存点自身)。
释放保存点之后事务持有的所有锁。
语句语法格式如下:
ROLLBACK TO SAVEPOINT pointname;
示例
以下示例通过 ROLLBACK 回滚当前事务的全部修改。回滚到保存点的具体操作,请参考 示例:将一个事务回滚到一个保存点。
obclient> SELECT * FROM t_insert;
+----+------+-------+---------------------+
| ID | NAME | VALUE | GMT_CREATE |
+----+------+-------+---------------------+
| 1 | CN | 10001 | 1970-01-01 17:52:31 |
| 2 | US | 10002 | 1970-01-01 17:52:38 |
| 3 | EN | 10003 | 1970-01-01 17:52:38 |
+----+------+-------+---------------------+
3 rows in set
obclient> BEGIN;
Query OK, 0 rows affected
obclient> INSERT INTO t_insert(id, name, value) VALUES(4,'JP',10004);
Query OK, 1 row affected
obclient> INSERT INTO t_insert(id, name, value) VALUES(5,'FR',10005),(6,'RU',10006);
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
obclient> SELECT * FROM t_insert;
+----+------+-------+---------------------+
| ID | NAME | VALUE | GMT_CREATE |
+----+------+-------+---------------------+
| 1 | CN | 10001 | 1970-01-01 17:52:31 |
| 2 | US | 10002 | 1970-01-01 17:52:38 |
| 3 | EN | 10003 | 1970-01-01 17:52:38 |
| 4 | JP | 10004 | 1970-01-01 17:53:34 |
| 5 | FR | 10005 | 1970-01-01 17:54:53 |
| 6 | RU | 10006 | 1970-01-01 17:54:53 |
+----+------+-------+---------------------+
6 rows in set
obclient> ROLLBACK;
Query OK, 0 rows affected
obclient> SELECT * FROM t_insert;
+----+------+-------+---------------------+
| ID | NAME | VALUE | GMT_CREATE |
+----+------+-------+---------------------+
| 1 | CN | 10001 | 1970-01-01 17:52:31 |
| 2 | US | 10002 | 1970-01-01 17:52:38 |
| 3 | EN | 10003 | 1970-01-01 17:52:38 |
+----+------+-------+---------------------+
3 rows in set「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




