事务处理
- 事务处理:可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行,保证数据库不包含不完整的操作结果
- 术语:
- 事务:一组SQL语句
- 回退:指撤销指定SQL语句的过程
- 提交:指将未存储的SQL语句结果写入数据库表
- 保留点:指事务处理中设置的临时占位符(placeholder),允许对它发布回退(不同于对整个事务进行回退)
控制事务处理
- 标识事务开始:
START TRANSACTION
使用ROLLBACK
- 回退(撤销)MySQL语句
ROLLBACK
只能在一个事务处理内使用(START TRANSACTION
命令之后)- 可回退的语句:
INSERT
UPDATE
DELETE
使用COMMIT
- 提交事务
start transaction; delete from orderitems where order_num = 20010; delete from orders where order_num = 20010; commit;
隐含事务关闭:当
COMMIT
或ROLLBACK
语句执行后,事务会自动关闭
使用保留点
- 语法:
- 声明保留点:
SAVEPOINT savepoint_name
- 回退至保留点:
ROLLBACK TO savepoint_name
- 声明保留点:
- 保留点越多越好:
- 可以按照自己的意愿灵活进行回退
- 释放保留点:
- 保留点在事务处理完成后自动释放
- 使用
RELEASE savepoint_name
语句释放保留点