jingxiao 2019-07-01
select * from orderitems; START TRANSACTION; DELETE FROM orderitems; select * from orderitems; ROLLBACK; select * from orderitems;
START TRANSACTION; DELETE FROM orderitems where order_num = 20010; DELETE FROM orders WHERE order_num = 20010; COMMIT
假设第二条删除失败,回滚,撤销事务处理块内的语句
复杂的事务处理可能需要部分提交或回退。
为了支持回退部分事务处理,必须能在事务处理块中合适的位置放 置占位符。这样,如果需要回退,可以回退到某个占位符。
这些占位符称为保留点。为了创建占位符,可如下使用SAVEPOINT
SAVEPOINT delete1
ROLLBACK TO delete1
保留点越多越好,方便灵活使用,but没必要到就算来哈!凡事适可而止
释放保留点
release savepoint delete1
明确释放保留点mysql是自动提交所有更改。
不自动提交更改
set autocommit = 0;