一、事务概述
1.1 什么是事务?
事务是数据库提供的一个特性,它将多个操作组成一个不可分割的单元:要么全部成功,要么全部失败。
1.2 经典案例:转账
以“冠希给美美转账1000元”为例:
从美美账户扣款1000元
向冠希账户加款1000元
这两步必须同时成功或同时失败,不能出现扣款成功但加款失败的情况。
在MySQL数据库中使用事务,提供两种方式
* 模拟转账的例子,冠希给美美转钱
二、操作事务的两种方式
第一种方式(使用命令的方式)
start transaction; ‐‐ 开启事务
update t_account set money = money ‐ 1000 where username = '冠希'; update t_account set money = money + 1000 where username = '美美';
commit; ‐‐ 提供事务(事务已经结束了,数据永久的保存到数据库中了) rollback; ‐‐ 回滚事务(事务已经结束了,数据回滚到最初始化的状态)
第二种方式(设置MySQL事务不默认提交的方式)
MySQL数据库的事务是默认提交的。
update t_account set money = money ‐ 1000 where username = '冠希';‐‐ 这一条语句默认使用了一个事务。
set autocommit = off或者0 --设置让MySql的数据库的事务不默认提交
编写SQL语句(执行完,都没有提交)
sql1
sql2
需要手动的提交或者回滚
commit;
rollback;
二、在 MySQL 中操作事务
建表语句
e table t_account( id int primary key auto_increment, username varchar(20), money double ); insert into t_account values (null,'美美',10000); insert into t_account values (null,'冠希',10000); insert into t_account values (null,'小凤',10000); insert into t_account values (null,'熊大',10000); insert into t_account values (null,'熊二',10000);