MySQL 事务和多用户 第一讲

来源:互联网 发布:mysql 数据表迁移 编辑:程序博客网 时间:2024/06/07 07:07

MySQL  事务和多用户 第一讲

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.事务隔离级别

    事务的隔离级别分为:序列化、可重复读、提交读、未提交读

 详解请看第二讲

 

原创粉丝点击