事务处理用来维护数据库的完整性,它保证成批的MYSQL操作要么完全执行,要么完全不执行。如果没有错误发生,整组语句提交给写到数据库表,如果发生错误,则进行回退以恢复数据库到某个已知且安全的状态。
术语:
事务:指一组SQL语句回退:指撤销指定SQL语句的过程提交:指将未存储的SQL语句结果写入数据库表保留点:指事务处理中设置的临时占位符,你可以对它发布回退(与回退整个事务处理不同)rollback只能在一个事务处理内使用,且不能回退create或者drop操作。在事务处理中可以使用这两条语句,但如果你执行回退,它们不会被撤销。
为指示MYSQL不自动提交更改,需要使用set autocommit=0。
start transaction; -- 使用事务保证订单20010不会被部分删除 delete from OrderItems where order_num = 20010; delete from Orders where order_num = 20010; -- 仅在不出错的时候写出更改,如果第一条delete起作用,但是第二条失败,则delete不会被提交 commit ; -- 当commit或rollback语句执行后,事务会自动关闭SAVEPOINT delete1;ROLLBACK TO delete1;
转载于:https://www.cnblogs.com/xLI4n/p/10412368.html