事务,事务特性,隔离级别

概念:事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向       系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

注意:默认MySQL的事务是自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐 式的提交事务


create table account(
id int primary key AUTO_INCREMENT comment 'ID',
name varchar(10) comment '姓名',
money double(10,2) comment '余额'
) comment '账户表';
insert into account(name, money)
VALUES ('张三',2000),
       ('李四',2000);
select * from account;
-- 查询张三余额
select * from account where name='张三';
-- 张三用户减少一千
update account set money=money-1000 where name='张三';
-- 李四用户增加一千
update account1 set money=money+1000 where name='李四';

-- 查看事物的提交方式,1是自动提交,0是手动提交
select @@autocommit;
-- 设置事物提交方法为手动,此为开启事务
set @@autocommit=0;
-- 执行该单词才能提交,若有异常提交了则张三钱少了李四钱没多
-- 点此两处,数据会进入盘里,数据会改变,之前直接运行代码数据就会进盘
commit ;
-- 若有异常则运行此单词回滚,则张三的一千会退回
rollback ;

事务的四大特性

 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一个事务不可能只执行其中的一部分操作。

        一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。如a向b转账,a不可能减少100后b没有增加100,或者转账中出现错误使a无缘无故损失100。

        隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立 环境下运行。即并发执行的各个事务之间不能互相干扰,一个事务内部的操作及使用数据对其他并发事务是隔离的。

        持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。接下来的其他操作不会对执行结果有任何影响,此时即使系统崩溃数据也不会丢失。

隔离级别

        隔离级别                         脏读         不可重复读         幻读

        Read uncommitted         √                 √                         √

        Read committed             ×                 √                         √

        Repeatable Read(默认) ×                 ×                         √

        Serializable                    ×                 ×                         ×

        查看事物的隔离级别

        select @@transaction_isolaciton;

        设置事物的隔离级别

        SET    -- 设置

                [ SESSION | GLOBAL ]           --  session:一次会话; global:全局有效

        TRANSACTION        ISOLATION        LEVEL

                
                        READ UNCOMMITTED |

                        READ COMMITTED |

                        REPEATABLE READ |

                        SERIALIZABLE

                
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值