mysql事务

为什么要有事务

现在的很多软件都是多用户,多程序,多线程的,对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念。这样很抽象,
举个例子: 
A 给B 要划钱,A 的账户-1000, B 的账户就要+1000元,这两个update 语句必须作为一个整体来执行,不然A 扣钱了,B 没有加钱这种情况很难处理(找出原因)。

事务的ACID特性

1. A(atomicity) 原子性。一个事务的执行被视为一个不可分割的最小单元。事务里面的操作,要么全部成功执行,要么全部失败回滚,不可以只执行其中的一部分。

2. C(consistency) 一致性。一个事务的执行不应该破坏数据库的完整性约束。如果上述例子中第2个操作执行后系统崩溃,保证A和B的金钱总计是不会变的。

3. I(isolation) 隔离性。通常来说,事务之间的行为不应该互相影响。然而实际情况中,事务相互影响的程度受到隔离级别的影响。文章后面会详述。

4. D(durability) 持久性。事务提交之后,需要将提交的事务持久化到磁盘。即使系统崩溃,提交的数据也不应该丢失。

事务的操作

 begin	开始一个事务		
 commit  提交一个事务		
 rollback  回滚一个事务

好的现在开始操作;

use IT;
begin;

在这里插入图片描述

insert into course values(6,‘java’129,2);

在这里插入图片描述

commit;

在这里插入图片描述

select * from course;

在这里插入图片描述

use IT;
begin;
uodate course set sorce=100 where id='6';

在这里插入图片描述

rollback;
回滚(撤销操作)

在这里插入图片描述

select * form course;

在这里插入图片描述

用set命令进行控制;
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交

在这里插入图片描述

use IT;
insert into course values(7,'python',111,3);
insert into course values(8,’php’,98,3);

在这里插入图片描述

select * from course;

在这里插入图片描述

好了就到这里吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值