事务
- 事务(transaction):指一组sql语句
- 回退(rollback):指撤销指定sql语句的过程
- 提交(commit):指将未存储的sql语句结果写入数据库表
- 保留点(savepoint):指事务中临时占位符,可对其发布回退
1. 事务的开始
start transaction;
2. rollback
select * from order;
start transaction;
delete from order;
select * from order;
rollback;
select * from order;
- 首先查看表order不为空,开始事务,删除表内容,再验证表内容为空,rollback回退start transaction;之后的所有语句,最后查看表不为空。
- 事务处理用来管理update,delete, insert语句。不能回退select语句(没有意义),不能回退create,drop语句,事务处理中可以有这两条语句,但执行回退,这两条不会被撤销。
3.commit
- 一般的mysql语句直接针对数据库表执行和编写的。提交(写和保存)操作是自动进行的,这就是隐含提交。但是在事务处理不会隐含提交,为明确地提交,使用commit语句
start transaction;
delete from order;
commit;
4.savepoint
- 为支持回退部分事务处理,在事务处理中合适的位置放置占位符。这样如果要回退,可以回退到某个占位符。
start transation;
insert into order values(1);
savepoint m1;
insert into order values(2);
savepoint m2;
rollback to m1;
commit;
此代码执行结果只会插入1,不会插入2;