事务处理用来维护数据库等完整性,保证mysql操做要么成功,要么失败(myisam不支持事务)
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
假设第二条删除失败,回滚,撤销事务处理块内的语句mysql
复杂的事务处理可能须要部分提交或回退。
为了支持回退部分事务处理,必须能在事务处理块中合适的位置放 置占位符。这样,若是须要回退,能够回退到某个占位符。
这些占位符称为保留点。为了建立占位符,可以下使用SAVEPOINTsql
SAVEPOINT delete1
ROLLBACK TO delete1
保留点越多越好,方便灵活使用,but不必到就算来哈!凡事适可而止
释放保留点数据库
release savepoint delete1
明确释放保留点mysql是自动提交全部更改。
不自动提交更改code
set autocommit = 0;