Bootstrap

mysql业务数据库回退_MySQL : 事务处理

【事务】一组SQL语句操作单元,组内所有SQL语句,完成一个业务。

若整组成功,意味着组内的全部操作都成功;

反之,若其中任何一条语句失败,意味着整个操作都失败。

操作失败,意味着整个过程都是没有意义的,应使数据库回到操作前的初始状态。

【point】1. 失败后,能回到开始位置;

2. 成功之前,其他用户(进程、规划)不能看到操作内的修改。

【思路】在一组操作之前,设计一个记号(备份点)。

【实现】利用innodb 存储引擎的“事务日志”功能。

执行分为2个阶段:

1. 执行阶段;

2. 将执行结果提交给数据库的阶段;

其中,事务日志便是将执行阶段的结果保存,若用户选择提交,才将执行结果提交给数据库。

(默认的执行方式:自动提交)

需要关闭自动提交功能(存在一个系统变量,autocommit 可以对自动提交进行配置)

1 set autocommit = 0 ; // 0 意味着关闭自动提交功能;1 意味着开启

f2b0b570bb0e6f0f4d9790184a71b8f8.png

若成功,执行 commit 提交结果;

若失败,执行 rollback ,回到起始位置。

-----------------

;