什么是事物:
作用:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样
例:现实生活中的一个转账场景
A 账户有5000 \ B账户有5000
A要向B转账500,如果没有任何意外此时B的账户中应有5500,但是凡事都会有意外,A在转账的时候突然断电或者出现了意外,此时A的账户已经减了500,但是B的账户没有增加,所以开启事物就是要保证这个转账的过程中的所有操作都要完成,如果有一个操作不完成就会视为操作无效,数据回滚,A的余额不会减,B的余额不会增加
PS:其实底层就是代码语句的执行完整性,因为A减少需要代码语句,B增加也需要代码语句,整个过程中只要代码语句执行不完整,事物就会视为操作无效,数据回滚到事物开启的时候最初的状态
事务实例:开启事务
'''这里新建一张表'''
create table use1(
id int unsigned auto_increment primary key,
name char(32) not null default'',
money int not null default 0
)charset=utf8;
表内添加数据:insert into user1(name,money) values('A',5000) ,('B',5000)
1、开启事务: start transaction;
2、A开始转账:update user1 set money=4500 where id=1;
3、B开始收钱:update user1 set monet=5500 where id=2;
4、提交事务: commit;
如果误操作或者操作不满意
就是用回滚:rollback