1.事务出现的原因:
根据现实的问题,可以知道我们现在做都是面向一个用户在使用,如果面向多个用户共享数据库则需要用到。
所谓事务:是指一组原子操作(一组SQL语句执行)的工作单元。
2.事务处理需要满足的ACID原则:
(1)ACID代表的是原子性(A)、一致性(C)、隔离性(I)、持久性(D)
(2)原子性:是指每个事务都必须被认为是一个不可分割的单元,如果一个事务由两个或开始者多个任务组成,只有在数据全部执行成功后,才可以认为是成功的,如果有一个失败,系统将会返回到以前的状态。来保证数据的安全性
(3)一致性:是指如果从系统中删除一个雇员,则所有和该雇员相关的数据都会删除。
(4)隔离性:是指每个事物在他自己的空间发生,和其他发生系统中的事务隔离,而且事务的结果只有在他执行完结果之后才能看到
(5)持久性:是指只要是提交的数据都会被存起来,没有提交的不可以
3.事务处理的步骤:
首先要关闭自动提交
Set @@autocommit = 0;
因为在MySQL中,当一个会话开始时,系统变量autocommit的值为1,即自动提交的功能是打开的,因此没执行一次语句,就会永久的保存在磁盘上,一个事务也就结束了,所以必须关闭自动提交,事务才能由多条Mysql语句组成,
(1) 开始事物 ----- 启动事务
Start transnaction | begin work
start transaction 开始事物
更新
update student
set name='dff'
where id=8
(2) 结束事务
Commit [work]
commit;(提交事物)
(3)撤销事务----------------结束当前的事务
Rollback work
(4)回滚事物-----------把所有修改的取消
Rollback;
可以加个保存点,取消指定的
设置保存点
savepoint s1
delete from student
where id=1;
回滚到保存点,事物没有提交
rollback work to savepoint s1
4.事务隔离级别
事务的隔离级别分为:序列化、可重复读、提交读、未提交读
详解请看第二讲