事务的介绍
事务
一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行
事务的特点
事务的使用步骤
事务的创建
隐式事务:事务没有明显的开启和结束的标记
比如:insert、update、delete语句
delete from 表 ......
显式事务:事务具有明显的开启和结束的标记
前提:必须先设置自动提交功能为禁用
........................................................................................................
步骤1:开启事务
set autocommit = 0;
start transaction;可选的
步骤2:编写事务中的sql语句(select、insert、 update、 delete)
语句1;
语句2;
.....
步骤3:结束事务
commit;提交事务
rollback;回滚事务
........................................................................................................
SHOW VARIABLES LIKE 'autocommit' -- 事务开启前关闭自动提交
SET autocommit = 0;
START TRANSACTION;
UPDATE `tran` SET salary = 500 WHERE t_name='郭久森';
UPDATE `tran` SET salary = 1500 WHERE t_name = '张莹莹';
COMMIT; -- 提交事务
ROLLBACK; -- 回滚
事务的并发问题
事务的隔离级别
查看MySQL当前隔离级别
更换MySQL的隔离级别
回滚点
回滚到savepoint, 即savepoint之前的sql已经执行,随后的sql被回滚,没有执行
-- 演示savepoint 的使用
SET autocommit=0;
START TRANSACTION;
DELETE FROM account WHERE id=25;
SAVEPOINT a;-- 设置保存点
DELETE FROM account WHERE id=28;
ROLLBACK TO a;-- 回滚到保存点