- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10. 数据库事务
MySQL
事务 (Transaction )是一系列 (多条 )相关SQL 句组成的最小的逻辑工作单元 ,即 ,不允
许存在一部分执行成功 ,一部分执行不成功的情况。
最典型的例子是两个银行账户的转账 ,不允许存在一个账户上已经扣了钱 ,但另一个账户新增
不成功的情况。
MySQL 使用 START TRANSACTION 来标识一个事务的开始。
事务的提交和回滚
要永久性地记录事务中SQL 句的结果 ,需要执行COMMIT 句 ,从而提交事务。
要取消SQL 句的结果 ,需要执行ROLLBACK 句 ,从而回滚事务 ,将所有行重新设置为原始
状态。
1. START TRANSACTION;
2. INSERT INTO dept VALUES (50, SOFTEWARE, EI JING);
3. COMMIT;
1. START TRANSACTION;
2. UPDATE dept SET loc=SHANG HI WHERE deptno=40;
3. ROLL ACK;
注意 :
事务用来管理 INSERT、UPDATE 和 DELETE 句。
你不能回退 SELECT 句 (这样做也没有意义 ,因为SELECT 句未对数据库造成变化 )。
CREATE 和 DROP 操作即便是回退 ,也不会被撤销。
事务的开始与结束
事务既有起点 ,也有终点。
不同的数据库事务的起点和终点会略有不同 ,以下是 MySQL事务的起点和终点。
事务的开始 :
未明确使用事务时 ,MySQL中每一条SQL都是一个独立的事务 ,自动开始事务 ,自动提交
事务。
明确使用 START TRANSACTION; 句时 ,事务开始 ,直到结束。
事务的结束 :
执行 COMMIT 或 ROLL ACK 时 ,事务就结束了。
断开与数据库的连接时 ,事务结束。如果是以合理的方式退出的 ,会 自动提交 ;如果是计
算机崩溃退出 ,那么会 自动回滚。
设置保存点
保存点是设置在事务中的标记 ,把一个较长的事务划分成若干短事务。通过设置保存点 ,在事
务需要回滚操作时 ,可以只回滚到某个保存点。
1. START TRANSACTION;
2.
3. UPDATE emp SET sal=sal*1.1 WHERE empno=7934;
4. SAVEPOINT save1;
5. UPDATE emp SET sal=sal*0.9 WHERE empno=7499;
6.
7. ROLL ACK TO SAVEPOINT save1;
事务的 ACID 特性
数据库理论对事务采用了更严格的定义 ,说明事务有4个基本特性 ,称为 ACID 特性。
原子性 (Atomic ) :事务是原子的 ,事务中所包含的SQL 句都是一个不可分割的工作单
元。
一致性 (Consist ) :事务必须确保数据库的数据库的状态保持一致 ,在事务开始时 ,数据
库的状态时一致的 ;在事务结束时 ,数据库状态也必须是一致的。
隔离性 (Isolated ) :多个事务可以独立运行 ,而不会彼此影响。
持久性 (Durable ) :一旦事务被提交之后 ,数据库的变化就会被永久保存下来。
原创力文档


文档评论(0)