事务的创建
隐式事务
没有明显的开启与结束的标记
insert \update \delete
显式事务
有明显的开启与结束的标记
但是特殊的地方:必须设置自动提交功能关闭
#查看开启自动提交
SHOW VARIABLES LIKE 'autocommit'
#设置提交功能禁用
SET autocommit=0
注意点:
只针对当前的会话有效,不是永久生效的
创建事务
1、关闭自动提交
SET autocommit=0;
2、开启事务
START TRANSACTION;
3、事务语句
ALTER TABLE girls MODIFY gname VARCHAR(20) NOT NULL;
INSERT INTO girls VALUES(0,'张三123');
4、明显的结束标记
COMMIT;
ROLLBACK;
SELECT * FROM girls;
注意点:
1、关闭自动提交
SET autocommit=0;
2、开启事务
START TRANSACTION;
3、需要执行的sql代码
sql1;
sql2;
.......
4、明显的结束标志
commit / rollback
关于删除的回滚问题
#需要将girls的数据进行删除
1、关闭自动提交
SET autocommit=0;
2、开启事务
START TRANSACTION;
3、事务语句
DELETE FROM girls;
4、明显的结束标记
ROLLBACK;
SELECT * FROM girls;
1、关闭自动提交
SET autocommit=0;
2、开启事务
START TRANSACTION;
3、事务语句
TRUNCATE TABLE girls;
4、明显的结束标记
ROLLBACK;
SELECT * FROM girls;
注意点:
1、delete支持回滚
2、TRUNCATE 不支持回滚