MySQL之事务编程(二)事务控制语句
来源:互联网 发布:网络英雄洛克人 编辑:程序博客网 时间:2024/05/21 09:25
MySQL里面默认的事务是自动提交的。即执行SQL语句后就会马上执行COMMIT操作。因此我们要显示的开启一个事务实用命令BEGIN和START TRANSACTION,或者去执行AUTOCOMMIT=0,MySQL数据库默认的AUTOCOMMIT的值为1,表示默认为自动提交。下面我们来看看相关的事务控制语句:
1、START TRANSACTION | BEGIN
显示的开启一个事务。
2、COMMIT和COMMIT WORK
在completion_type=0时,两者一样的效果。但是当completion_type=1时,两者效果存在区别,为1时,COMMIT WORK等同于COMMIT AND CHAIN,开启一个链事务。当completion_type=2时,COMMIT WORK等同于COMMIT AND RELEASE,当事务提交后就会自动断开于服务器的链接。
3、ROLLBACK和ROLLBACK WORK
回滚
4、SAVEPOINT identifier:
保存节点
5、RELEASE SAVEPOINT identifier
释放节点信息,通常与控制语句SAVEPOINT identifier一起用。如果没有相应的节点则会返回一个错误。
6、ROLLBACK TO [SAVEPONT] indentifier
回滚道相应的节点
7、SET TRANSACTION
用来设置事务的隔离级别
8、案例分析:
EG1::
(1)create table t( a intm primary key(a) ); (2)set @@completion_type=1; (3)BEGIN; (4)INSER INTO t value(1); (5)COMMIT WORK; (6)INSER INTO t value(2); (7))INSER INTO t value(1); (8)ROLLBACK (9)SELECT * FROM t;
completion_type设置为1,表示COMMIT WORK会自动开启一个链事务,所以在7会提示重复主键,而回滚后第一个2也没有插入到表中去。
EG2:
(1) set @@completion_type=3; (2) BEGN; (3)INSER INTO t value(3); (4)COMMIT WORK; (5) select @@version \G;
执行第(5)时,我们会发现有错误,事实上是因为执行第(4)后,会断开链接。
EG3:
ROLLBACKTO SAVEPOINT命令并不是真正地结束了事务,如果此时查询结果,在此之前如果没有提交的事务也不会得到提交,查询相应的数据会发现数据库里面没有你想要的数据。
写于2013年10月24日
- MySQL之事务编程(二)事务控制语句
- MySQL事务控制语句
- MySQL事务控制语句
- MySQL事务控制语句(学习笔记)
- mySql 事务控制和锁定语句
- mysql之控制台下的事务控制
- MySQL之事务编程(一)事务概述及其事务分类
- 事务控制语句
- 事务的控制语句
- 事务控制语句
- Oracle_事务控制语句
- MySQL之锁、事务、并发控制
- MySQL 之 触发器和事务控制
- mysql学习(二)事务
- 编程控制Oralce事务
- mysql 事务控制
- Mysql 命令行控制事务
- mysql 事务控制
- 读《Pragmatic Thinking and Learning》笔记及摘录
- Android仿QQ微信开场导航以及登陆界面
- 汉澳战斗檄文,跟着汉澳去战斗
- mbox说明
- Drupal 7 中文安装教程执行时间超时的解决办法
- MySQL之事务编程(二)事务控制语句
- mini210 移植 tslib+qt4.8.5+中文字体库
- java awt 简单示例 GridLayout
- 心流状态---人们做事时内心的一种状态
- Android仿QQ微信UI实现导航页和开场动画【附源码】
- JavaScript实现贪蛇吃小游戏
- CentOS下用Tomcat+Zookeeper+Nginx+Solr完美搭建SolrCloud平台(五)
- Linux启动关闭图形界面,启动命令行
- Android4.0开发人员选项详尽解析