1.
select @@autocommit; -- 查看事务提交方式
set @@autocommit=0; -- 设置为手动提交
2.实例:
-- 转账操作(张三给李四转账1000)
select * from account where name='张三';
update account set money=money-1000 where name='张三';
update account set money=money+1000 where name='李四';
commit;-- 提交事务
rollback ; -- 回滚事务
-- 方式2
start transaction ;
-- 转账操作(张三给李四转账1000)
select * from account where name='张三';
update account set money=money-1000 where name='张三';
update account set money=money+1000 where name='李四';
commit; -- 事务执行成功
rollback ; -- 事务执行失败
3.事务四大特征:
原子性:事务是不可分割的最小操作单元,要么全部成功或失败
一致性:事务完成时,必须使所有的数据保持一致状态
隔离性:数据库系统提供的隔离机制,保证事务再独立环境下运行
持久性:事务一旦提交或回滚,对数据库中的数据改变时永久的
4.事务并发问题:
脏读:一个事务读到另一个事务还没有提交的数据
不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同
幻读:一个事务按照条件查询时,没有相应的数据行,但是再插入数据时,又发现这行数据已经存在,好像出现了幻影
5.事务隔离级别:
read uncommitted:脏读,不可重复读,幻读
read commmited:不可重复读,幻读
repectable read:幻读
serializable:*/
select @@transaction_isolation; -- 查看隔离级别
set session transaction isolation level read uncommitted ; -- 转换隔离级别