0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点# 23 MySQL 事务

事务

对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念。

A 给B 要划钱,A 的账户-1000元, B 的账户就要+1000元,这两个update 语句必须作为一个整体来执行,这些数据库操作语句就构成一个事务。

特点

  • 原子性(atomicity)

一个事务必须被视为一个不可分割的最小单元,整个事务中的所有操作要么全部提交成功,要么全部失败,对于一个事务来说,不可能只执行其中的一部分操作。

  • **一致性(consistency)

一致性是指事务将数据库从一种一致性转换到另外一种一致性状态,在事务开始之前和事务结束之后数据库中数据的完整性没有被破坏

  • 隔离性(isolation)

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

  • 持久性(durability)

一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失

create table tbl_money (
id int not null primary key auto_increement,
money int not null
)engine = innodb default charset=utf8;
insert into tbl_money values(0,100),(0,200),(0,300);

练习1

select * from tbl_test;

begin; 或start transcation

update tbl_money set money = money - 100 where id = 1;

update tbl_money set money = money + 100 where id = 2;

commit;

练习2

select * from tbl_test;

begin; 或start transcation

update tbl_money set money = money - 100 where id = 1;

update tbl_money set money = money + 100 where id = 2;

rollback;

 

举报

相关推荐

0 条评论