第10章MySQL多用户事务管理讲述.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章MySQL多用户事务管理讲述

第10章 MySQL多用户事务管理 事务管理 10.1 10.2 多用户访问 10.1 事务管理 10.1.1 事务的概念 使用一个简单的例子来帮助理解事务:向公司添加一名新的雇员(见图10.1)。 10.1.2 ACID属性 1.原子性 原子性意味着每个事务都必须被看作是一个不可分割的单元。假设一个事务由两个或者多个任务组成,其中的语句必须同时成功才能认为整个事务是成功的。如果事务失败,系统将会返回到该事务以前的状态。 2.一致性 不管事务是完全成功完成还是中途失败,当事务使系统处于一致的状态时存在一致性。参照前面的例子,一致性是指如果从系统中删除了一个雇员,则所有和该雇员相关的数据,包括工资数据和组的成员资格也要被删除。 3.隔离性 隔离性是指每个事务在它自己的空间发生,和其他发生在系统中的事务隔离,而且事务的结果只有在它完全被执行时才能看到。即使在这样的一个系统中同时发生了多个事务,隔离性原则保证某个特定事务在完全完成之前,其结果是看不见的。 10.1.2 ACID属性 4.持久性 持久性是指即使系统崩溃,一个提交的事务仍然存在。当一个事务完成,数据库的日志已经被更新时,持久性就开始发生作用。大多数RDBMS产品通过保存所有行为的日志来保证数据的持久性,这些行为是指在数据库中以任何方法更改数据。数据库日志记录了所有对于表的更新、查询、报表等。 10.1.3 事务处理 在MySQL中,当一个会话开始时,系统变量AUTOCOMMIT值为1,即自动提交功能是打开的,当用户每执行一条SQL语句后,该语句对数据库的修改就立即被提交成为持久性修改保存到磁盘上,一个事务也就结束了。因此,用户必须关闭自动提交,事务才能由多条SQL语句组成,使用如下语句: SET @@AUTOCOMMIT=0; 执行此语句后,必须明确地指示每个事务的终止,事务中的SQL语句对数据库所做的修改才能成为持久化修改。例如,执行如下语句: delete from xs where 学号=081101; select * from xs; 10.1.3 事务处理 1.开始事务 当一个应用程序的第一条SQL语句或者在COMMIT或ROLLBACK语句(后面介绍)后的第一条SQL执行后,一个新的事务也就开始了。另外还可以使用一条START TRANSACTION语句来显式地启动一个事务。 语法格式: START TRANSACTION | BEGIN WORK 2.结束事务 COMMIT语句是提交语句,它使得自从事务开始以来所执行的所有数据修改成为数据库的永久部分,也标志一个事务的结束,其语法格式为: COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 10.1.3 事务处理 3.撤销事务 ROLLBACK语句是撤销语句,它撤销事务所做的修改,并结束当前这个事务。 语法格式: ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 在前面的举例中,若在最后加上以下这条语句: rollback work; 10.1.3 事务处理 4.回滚事务 除了撤销整个事务,用户还可以使用ROLLBACK TO语句使事务回滚到某个点,在这之前需要使用SAVEPOINT语句来设置一个保存点。 SAVEPOINT语法格式为: SAVEPOINT identifier 其中,identifier为保存点的名称。 ROLLBACK TO SAVEPOINT语句会向已命名的保存点回滚一个事务。如果在保存点被设置后,当前事务对数据进行了更改,则这些更改会在回滚中被撤销,语法格式为: ROLLBACK [WORK] TO SAVEPOINT identifier RELEASE SAVEPOINT语句会从当前事务的一组保存点中删除已命名的保存点。不出现提交或回滚。如果保存点不存在,会出现错误。语法格式为: RELEASE SAVEPOINT identifier 10.1.3 事务处理 下面几个语句说明了有关事务的处理过程: 1. START TRANSACTION 2. UPDATE … 3. DELETE… 4. SAVEPOINT S1; 5. DELETE… 6. ROLLBACK WORK TO SAVEPOINT S1; 7. INSERT… 8. COMMIT WORK; 10.1.4 事务隔离级 基于ANSI/ISO SQL规范,MySQL提供了下面4种隔离级:序列化(SERIALIZABLE)、可重复读(REPEATABLE READ)、提交读(READ COMMITTED)、未提交读(READ UNCOMMITTED)。 只有支持事务的存储引擎才可以定义一

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档