一、事务
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;