日期:2014-05-16  浏览次数:20687 次

(八) MySQL事务

1、mysql事物概述

    在mysql中,事务由单独单元的一个或者多个SQL语句组成,在这个单元中每条鱼具都是相互依赖的,只要其中有一条语句执行不成功,整个单元就会回滚(会到之前的状态)。这在现实生活中非常有用。

    例如在网上购物的过程中,用户从 选购商品à添加到购物车à在线支付à商家发货à用户收获à确认收货  这其中的任何一个步骤出现问题都会结束交易,所以整个过程中必须采用数据库的事务来解决这些问题。

    需要注意的是,在mysql中默认的存储引擎是MyISAM,他是不支持事务机制的(但支持伪事务机制),InnoDB和BDB支持事务机制。

 

2、mysql事务存在的周期

    创建事务一般有这么几个过程:初始化事务、创建事务、使用select语句检查数据是否被录入、提交事务。

create table table_name(field_defintions) type =InnoDB/BDB;

其中table_name为表名,field_definitions为表内定义的字段属性,type定义数据的类型。


(1)初始化事务

Start transaction;

 

(2)创建事务

start transaction;

insert into tb_student(name,addr,tel)

values(‘chen’,’nanjing’,’025-78764789’);

 

(3)使用select查看数据是否已经被录入到数据库中

select * from tb_student;

 

(4)提交事务

commit;

 

(5)撤销事务

bollback;

    执行回滚操作,会使的在start transaction后的所有SQL操作都被撤销,数据库恢复到start transaction之前的状态。

 

    注意:事务的周期是从start transaction开始,到commit结束。事务不支持嵌套的功能,当用户在没有结束第一个事务又重新打开一个新的事务时,前一个事务将会被自动提交。