欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
事务
 
事务使用户定义的一个操作序列,这些操作要么全部失败,是一个不可分割的工作单位(构成单一逻辑工作单元的操作集合)
 
如果某一事务成功,则该事务中进行的所有数据更改均会提交,成为数据库中永久组成部分。
 
如果事务遇到错误且必须取消或者回滚,则所有更改均被清除。
 
事务的执行,要么成功,要么回滚。
 
逻辑架构和存储引擎
 
MySQL服务器逻辑架构从上往下可以分为三层:
 
第一层:处理客户端连接、授权认证等
 
第二层:服务器层,负责查询语句的解析、优化、缓存以及内置函数的实现、存储过程等。
 
第三层:存储引擎,负责MySQL中数据的存储和提取
 
MySQL中服务器不管理事务,事务是由存储引擎实现的。MySQL支持事务的存储引擎有InnoDB、NDB Cluster等,其中InnoDB使用最为广泛;其他存储引擎不支持事务。
 
事务操作
 
基本命令:
 
START TRANSACTION 或 BEGIN 开启一个事务
 
COMMIT 提交当前事务,将其永久保存下来。使其永久化。
 
ROLLBACK 回滚当前事务,取消其更改
 
SET autocommit 禁用或启用当前会话的自动默认提交模式(在MySQL中每个sql语句都会默认进行提交)
 
#开启一个事务
 
START TRANSACTION 
 
[transaction_characteristic [, transaction_characteristic] …] 
 
#事务特点
 
transaction_characteristic: { WITH CONSISTENT SNAPSHOT | READ WRITE | READ ONLY }
 
BEGIN [WORK] 
 
#提交
 
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 
 
#回滚
 
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 
 
#设置自动提交
 
SET autocommit = {0 | 1}
 
执行流程
 
关闭自动提交
 
MySQL中默认采用的是自动提交模式,在自动提交模式下,每个sql语句都会被当作一个事务执行提交操作。
 
查看自动提交状态:
 
SHOW VARIABLES LIKE 'autocommit';
 
关闭自动提交
 
主动关闭
 
#值为1为开启,0为关闭
 
SET autocommit=0;
 
如果没有关闭自动提交,在执行增删改后,ROLLBACK是不能撤销操作的。
 
而如果关闭了自动提交,你需要在做出更改之后,使用COMMIT或者ROLLBACK提交或者撤销操作。(注意:自动提交关闭对DDL语言没有作用,例如:CREATE ,DROP 等操作)
 
隐式的关闭
 
在开启一个事务之后,自动提交会暂时的关闭
 
#执行事务
 
START TRANSACTION;
 
…… 
 
COMMIT/ROLLBACK;
 
使用 START TRANSACTION ,自动提交将保持禁用状态,直到您使用 COMMIT 或结束事务ROLLBACK 。自动提交模式然后恢复到其先前的状态。
 
开启事务
 
#该语句标志着一个事务的开始
 
START  TRANSACTION
 
启动事务后把所有后继的SQL语句看作事务组成的一部分,知道提交或者回滚事务为止。
 
语法:
 
START { TRAN | TRANSACTION }
 
[ { transaction_name | @tran_name_variable }
 
 [ WITH MARK [ 'description' ] ] ]
 
提交事务
 
#提交事务
 
COMMIT TRANSACTION;
 
COMMIT ;
 
提交事务后,事务结束,期间所作的操作将保存在数据库中,事务结束。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64788.shtml