数据事物嵌套实验和结论
2011-09-14 11:06
169 查看
测试数据库:Mysql InnoDB 目标数据库表student(id,int; name,varchar)
SQL组合1
start transaction;
start transaction;
insert into student values(1,"hello,world");
commit;
insert into student values(2,"goodbye,world");
rollback;
缺省的mysql运行在autocommit模式,如果不修改缺省模式的话,意味着,当执行一个更新时候mysql都立刻将更新存储到磁盘上,所以,缺省模式下,该条语句执行结果是:两条数据全部插入,下面的实验全部在非缺省模式下操作
SET AUTOCOMMIT=0;
结果:
命令行下:直插入了id=1的这套记录
Qt下:插入了两条记录,说明我们的Qt事物操作,如果出现嵌套,需要执行SET AUTOCOMMIT=0操作,否则就会出现两条记录都插入的情况,当在Qt里面执行了SET AUTOCOMMIT=0操作后,只插入了第一条记录。
SQL组合2
start transaction;
start transaction;
insert into student values(1,"hello,world");
rollback;
insert into student values(2,"goodbye,world");
commit;
结果:
命令行下:非缺省模式下,插入id=2这条记录
Qt下:同命令行下一样
SQL组合3
start transaction;
insert into student values(2,"goodbye,world");
start transaction;
insert into student values(1,"hello,world");
rollback;
commit;
命令行下:非缺省模式下,插入id=2这条记录
Qt下:同命令行下一样
缺省模式和非缺省模式一样,和组合1比较,似乎可以得到结论三
SQL组合4
start transaction;
insert into student values(2,"goodbye,world");
start transaction;
insert into student values(1,"hello,world");
commit;
rollback;
命令行下:非缺省模式下,两条记录全部插入
Qt下:同命令行下一样
结论
第一:外层事物的提交或者回滚,对内层事物不影响。
第二:内层事物的提交,会把内层和外层所有的事物全部提交,即对外层事物有影响,会结束外层事物,使其回滚无效。
第三:内层事物的回滚,不影响外层事物。无论是在缺省模式还是非缺省模式
也许不同的数据库结果不一样,或者不同的数据库引擎不一样,没有测试其他的。
~~thankyou
本文出自 “xiesiyuana的博客” 博客,请务必保留此出处http://seanyxie.blog.51cto.com/1319339/1375881
SQL组合1
start transaction;
start transaction;
insert into student values(1,"hello,world");
commit;
insert into student values(2,"goodbye,world");
rollback;
缺省的mysql运行在autocommit模式,如果不修改缺省模式的话,意味着,当执行一个更新时候mysql都立刻将更新存储到磁盘上,所以,缺省模式下,该条语句执行结果是:两条数据全部插入,下面的实验全部在非缺省模式下操作
SET AUTOCOMMIT=0;
结果:
命令行下:直插入了id=1的这套记录
Qt下:插入了两条记录,说明我们的Qt事物操作,如果出现嵌套,需要执行SET AUTOCOMMIT=0操作,否则就会出现两条记录都插入的情况,当在Qt里面执行了SET AUTOCOMMIT=0操作后,只插入了第一条记录。
SQL组合2
start transaction;
start transaction;
insert into student values(1,"hello,world");
rollback;
insert into student values(2,"goodbye,world");
commit;
结果:
命令行下:非缺省模式下,插入id=2这条记录
Qt下:同命令行下一样
SQL组合3
start transaction;
insert into student values(2,"goodbye,world");
start transaction;
insert into student values(1,"hello,world");
rollback;
commit;
命令行下:非缺省模式下,插入id=2这条记录
Qt下:同命令行下一样
缺省模式和非缺省模式一样,和组合1比较,似乎可以得到结论三
SQL组合4
start transaction;
insert into student values(2,"goodbye,world");
start transaction;
insert into student values(1,"hello,world");
commit;
rollback;
命令行下:非缺省模式下,两条记录全部插入
Qt下:同命令行下一样
结论
第一:外层事物的提交或者回滚,对内层事物不影响。
第二:内层事物的提交,会把内层和外层所有的事物全部提交,即对外层事物有影响,会结束外层事物,使其回滚无效。
第三:内层事物的回滚,不影响外层事物。无论是在缺省模式还是非缺省模式
也许不同的数据库结果不一样,或者不同的数据库引擎不一样,没有测试其他的。
~~thankyou
本文出自 “xiesiyuana的博客” 博客,请务必保留此出处http://seanyxie.blog.51cto.com/1319339/1375881
相关文章推荐
- 数据事物嵌套实验和结论
- 图文相关性 flickr数据实验结论_1
- Mysql 优化实验数据结论记录
- MySQL事物系列:3:innodb_flush_log_at_trx_commit小实验
- 数据结构实验之数组二:稀疏矩阵
- 数据结构实验之图论四:迷宫探索
- 数据结构实验之二叉树八:(中序后序)求二叉树的深度
- 数据结构实验1 链表 实现学生信息存储,功能 增删改查,实现 结构类型
- 数据结构实验之数组三:快速转置
- 详解ASP.NET提取多层嵌套json数据的方法
- 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
- 数据结构实验之链表六:有序链表的建立
- 提取多层嵌套Json数据
- 数据结构实验之图论八:欧拉回路
- 网易面试题之 航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程, * 科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2
- SDUTACM 数据结构实验之查找三:树的种类统计
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之队列一:排队买饭
- 数据结构实验之排序三:bucket sort