我理解的事务就是类似git那种可以回滚的操作,一般应该增删改查动数据需要开启。
// 开启事务
START TRANSACTION
# OR
BEGIN
// 开启后如要回滚全部
rollback
// 提交事务
commit;
// 使用SAVEPOINT来打回滚点
SAVEPOINT aaa;
xxxxxx
SAVEPOINT ccc;
xxxxx
// 回滚到回滚点
ROLLBACK TO SAVEPOINT aaa;
特别注意这个报错:# MYSQL | ERROR 1305(42000) SAVEPOINT *** DOES NOT EXIST
autocommit模式:在开启情况下,对于每条statement来说,都会自动形成一个commit,也就是会即时对开始和结束一个事务。所以,当出现rollback to savepoint出现这个错误时,第一步是检查autocommit模式是否有开启。
select @@autocommit;
1则代表开启,0则代表未开启。
如果需要关闭,则输入以下代码
set autocommit = 0 ;