【摘要】:在此情况下,就需要用户优先考虑使用MySQL事务处理。在MySQL中,事务由单独单元的一个或多个SQL语句组成。通过InnoDB和BDB类型表,MySQL事务能够完全满足事务安全的ACID测试,但是并不是所有表类型都支持事务,如MyISAM类型表就不能支持事务,只能通过伪事务对表实现事务处理。当用户希望已经存在的表支持事务处理,则可以应用ALTER TABLE命令指定数据表的类型实现对表的类型更改操作,使原本不支持事务的数据表更改为支持事务处理的类型。
在用户操作MySQL过程中,对于一般简单的业务逻辑或中小型程序而言,无须考虑应用MySQL事务。但在比较复杂的情况下,往往用户在执行某些数据操作过程中,需要通过一组SQL语句执行多项并行业务逻辑或程序,这样,就必须保证所用命令执行的同步性。使执行序列中,产生依靠关系的动作能够同时操作成功或同时返回初始状态。在此情况下,就需要用户优先考虑使用MySQL事务处理。
在MySQL中,事务由单独单元的一个或多个SQL语句组成。在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事务开始以前的状态;如果单元中的所有SQL语句均执行成功,则事务被顺利执行。
通过InnoDB和BDB类型表,MySQL事务能够完全满足事务安全的ACID测试,但是并不是所有表类型都支持事务,如MyISAM类型表就不能支持事务,只能通过伪事务对表实现事务处理。
默认情况下,在MySQL中创建的数据表类型都是MyISAM,但是该类型的数据表并不能支持事务。所以,如果用户想让数据表支持事务处理能力,必须将当前操作数据表的类型设置为InnoDB或BDB。
在创建事务的过程中,用户需要创建一个InnoDB或BDB类型的数据表,其基本命令结构如下:(www.chuimin.cn)
其中,table_name为表名,而field_defintions为表内定义的字段等属性,TYPE为数据表的类型,既可以是InnoDB类型,同样也可以是BDB类型。
当用户希望已经存在的表支持事务处理,则可以应用ALTER TABLE命令指定数据表的类型实现对表的类型更改操作,使原本不支持事务的数据表更改为支持事务处理的类型。其命令如下:
当用户更改完表的类型后,即可使数据表支持事务处理。
应用ALTER TABLE操作可能会导致数据库中数据丢失,因此为了避免非预期结果出现,在使用ALTER TABLE命令之前,用户需要创建一个表备份。
相关推荐