什么是事务?为什么需要事务?
事务在总量不变的情况下,要么同时执行,要么都不执行。(如:银行转账系统,捐赠物资)
特点:1.要么同时执行要么不执行,共进退2.此消彼长,(金钱)总量不变
事务的四个特性:1.原子性:事务是一个完整的操作,各部分操作之间不可分割,要么同时执行,要么都不执行,共进退。
(acid 重要) 2. 一致性:当事务完成时,数据必须处于一致状态。如:转账之后数据总额不变
3.隔离性:同时发生的两个事务之间彼此隔离,独立,不以任何方式依赖于或影响其他事务
如:A和B同时给C转账,A与B之间是隔离独立的,不会相互影响。
4.持久性:事务完成后,对数据库的修改将永久保持
如何创建事务?
开始事务:
begin; 或 start transaction;
提交:
commit;
回滚(撤销)事务:
rollback;
如:
begin;
set autocommit = 0;
update bank set money = money -500
where name = ‘张三’;
update bank set money = money+500
where name = ‘李四’;
commit;
update bank set money = money-1000
where name = ‘张三’;
roollback;
set autocomit = 1;
自动关闭和开启事务:
set autocommit = 0; 代表自动关闭事务
set autocommit = 1; 代表自动开启事务
注意: