mysql事务的提交和回滚和数据引擎有关
来源:互联网 发布:知盈课堂手机看不了 编辑:程序博客网 时间:2024/05/14 09:41
要熟悉两种存储引擎去,MyISAM和inonoDB。 mysql5.5一下默认是Myisam不支持事务。 mysql5.5以上的Innodb引擎支持事务。
修改表引擎的方法
要想在创建表时指定存储引擎,可使用ENGINE参数:
CREATE TABLE engineTest(id INT) ENGINE = MyISAM;查看数据库支持哪些引擎show engines;查看某张表的数据引擎show table status from nxpt where name='apk_version';
修改表的数据引擎
alter table table_name engine=innodb;
START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]SET AUTOCOMMIT = {0 | 1}
以上是mysql创建存储过程的官方语法。 我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使用事务的rollback,这样是不能实现回滚的或者说可能出现意外的错误。
那么我们需要的是一个条件判断,比如用loop来标记,因为MySql默认是会自动提交的,所以我们不用担心rollback之后条件退出而没有commit。
top:BEGINDECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;START TRANSACTION;INSERT INTO apk_version VALUES ( 22 ,'22','33','d','d',SYSDATE());INSERT INTO apk_version VALUES ( NULL ,'22','33','d','d',SYSDATE());IF t_error = 1 THEN ROLLBACK;LEAVE top;//重点就是这里如果去掉的话,事务是自动提交,完成不了事务的机制。ELSE COMMIT;END IF;select t_error;END
1 0
- mysql事务的提交和回滚和数据引擎有关
- mysql事务的提交和回滚
- mysql 事务的提交和回滚
- 事务的回滚和不提交的区别
- 关于SAP的事务提交和回滚(LUW)
- 关于SAP的事务提交和回滚(LUW)
- 手动提交事务和回滚的使用典例
- 在线程里面控制事务的提交和回滚
- redo和undo事务提交和回滚
- MySQL的存储引擎造成的事务无法回滚
- MySQL的存储引擎造成的事务无法回滚
- MySQL事务回滚rollback与提交commit的操作
- EJB容器管理事务-提交和回滚
- EJB容器管理事务-提交和回滚
- c++ mysql事务提交及回滚
- ibatis 对事务和批量提交的处理,以及回滚的处理
- 对ORACLE 已提交的事务进行回滚之详细版和操作版
- 对ORACLE 已提交的事务进行回滚之详细版和操作版
- ViewPage+Volley实现动态加载网络图片广告轮播 !
- 一定要刷完leetcode!
- 常见数据库种类及介绍
- Android studio 遇到的问题
- 关于栈与堆的区分
- mysql事务的提交和回滚和数据引擎有关
- 在CentOS上安装phpMyAdmin
- HTML防止别人引用网站的框架脚本
- Struts2中 radio标签的详细使用方法
- Caffe官方例程之 特征可视化python代码 (filter visualization notebook)
- Velocity布局详解(二)
- MSBuild入门
- localhost和127.0.0.1的区别
- 【poj 2531】Network Saboteur 题意&题解&代码(C++)