事务
事务就是一个事情。组成这个事情可能有多个单元,要求这些单元,要么全部成功,要么全都不成功。
- 汇款包括两个单元组成:从一个账户中取出来,向另外一个账户存进去。
- 在开发中有事物的存在,可以保证数据的完整性。
事务的操作
MySQL下事务的操作
方式1适合一个事务中有多条SQL语句
- start transaction 开启事务
- rollback 事务回滚
- commit 事务提交
开启事务
create database remit;
use remit;
create table account(
id int primary key auto_increment,
name varchar(20),
money double
);
insert into account values(null,'aaa',1000);
insert into account values(null,'bbb',1000);
insert into account values(null,'ccc',1000);
-- 开启事务,开启事务后可以在该过程中写任意SQL语句
start transaction;
--select语句并不能对表中的数据进行改变,此时开启事务没有意义
--
update account set money = money -500 where id = 1;
-- 此时重启数据库,会发现,表中的数据并没有改变
事务回滚
start transaction;
update account set monet =1;
--表中的money为1
select * from account;
rollback;
--表中的money又恢复
select * from account;
事务提交
start transaction;
update account set money = money -500 where id = 1;
commit;
--此时重启数据库,id=1的money已经变成500
方式2