事务

一、事务

1、概念:

  事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所做的所有更改都会被撤销。也就是事务具有原子性,一个事务中的一系列操作要么全部成功,要么一个都不做。

  事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交;如果其中一个步骤失败,则将发送回滚操作,撤销到事务开始之前的所有操作。

  总结:事务就是一组操作,要么全部完成,要么全部失败!

2、事务特性ACID

  事务具有四个特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性简称为ACID特性。

  1、原子性(事务内的操作,要么全部成功,要么全部失败)

    事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做。

create table user(
	id int primary key auto_increment,
	name char(32),
	balance INT
);
insert into user(name,balance) values ('wsb',1000),('egon',1000),('ysb',1000)

#原子操作

start TRANSACTION;
UPDATE user set balance=900 where name = 'wsb'; -- 买东西支付100元
UPDATE user set balance=1010 where name='egon'; -- 中介拿走10元
UPDATE user set balance=1090 where name='ysb';  -- 卖家拿到90元
commit;

#出现异常,回滚到初识状态

start TRANSACTION;
UPDATE user set balance=900 where name='web';   -- 买东西支付100元
UPDATE user set balance=1010 where name='egon';  -- 中介拿走10元
UPDdATE user set balance=1090 where name='ysb';   -- 卖家拿到90元,出现异常没有成功拿到
rollback;
COMMIT;
SELECT * from user;
原文地址:https://www.cnblogs.com/hzhcdhm/p/8039057.html