- 事务概述
- 事务提交
- 事务回滚
事务概述
事务是只用户定义的一系列数据库更新、修改操作,这些操作要么都不执行,要么都执行,是一个不可分割的逻辑工作单元。(这里的操作指的是一系列修改操作:insert、 delete 、update)
特点:
- 原子性:要么完成,要么不完成。操作失败则整个事务回滚,恢复事物开始前的状态;如果成功,则全部执行
- 一致性:如果成功,则全部执行,数据库变化将生效。回滚前和回滚后,数据库均处于一致性状态。
- 隔离性:多用户并发对数据库进行访问时,要保证所有并发事务认为只有自己在使用系统,不为其他事务的操作所干扰。
- 持久性:所有事务的改变都是永久的。
在进行事务的过程中,为了使sql能够执行的修改操作永久保存在数据库中,事务处理结束时必须由用户提交确定——使用commit语句,事务操作才会成功执行。否则重新进入系统后不会有数据更新。
接下来看一个事务的操作实例。
先看一下原始表:
use test1;
select * from teacher limit 5;
t_id t_name
01 张三
02 李四
03 王五
在原始表上我们需要对教师表插入两条信息:
delimiter // # 修改结束符号为//
start transaction; # 事务开始
insert into teacher values('04','卢88');
insert into teacher values('05','闻77'); #插入两条数据
commit; # commit命令可以有效执行事务并更新
//
查看执行效果:
select * from teacher;
//
t_id t_name
01 张三
02 李四
03 王五
04 卢88
05 闻77
事务的回滚
在事务处理过程中,如果事务尚未提交时发现某些操作不合理,可以通过事务的回滚来取消当前事务,把事务恢复到事务处理前的状态。
执行 “ rollback; ” 操作,即可回滚至事务开始之前。