ABORT
注意事项
在事务外部执行ABORT语句不会影响事务的执行,但是会产生一个警告信息。
语法格式
1
|
ABORT [ WORK | TRANSACTION ] ; |
参数说明
WORK | TRANSACTION
可选关键字,对ABORT操作没有影响。
示例
以下演示,使用ABORT语句回滚撤销修改账号余额的过程。
- 创建测试表并导入数据。
1 2 3 4 5 6 7 8 9 10 11 12
-- 创建测试表 DROP TABLE IF EXISTS user_account; CREATE TABLE user_account ( id INT PRIMARY KEY, username VARCHAR(20), balance DECIMAL(10,2) ); -- 插入初始数据 INSERT INTO user_account VALUES (1, 'lily', 100.00); INSERT INTO user_account VALUES (2, 'lilei', 200.00); -- 查看初始数据 SELECT * FROM user_account;

- 事务内使用ABORT进行回滚。
- 开启事务。
1BEGIN TRANSACTION;
- 执行修改操作(扣减lily余额)。
1UPDATE user_account SET balance = balance - 50 WHERE id = 1;
- 查看修改后的数据(事务内临时生效)。
1SELECT * FROM user_account;

- 执行 ABORT 回滚(撤销所有修改)。
1ABORT;
以上还有等价写法,例如ABORT WORK; 或者ABORT TRANSACTION; 现代写法用ROLLBACK;
- 验证回滚结果:数据恢复为初始值。
1SELECT * FROM user_account;

- 开启事务。