事务的隔离级别就是用来设置事务在读取数据时的隔离状态,提高数据并发使用效率的一种手段。事务的隔离级别由低到高可分为5个级别。MySQL默认级别,这种隔离级别可以避免“不可重复读取”,达到可重复读取。更改事务的隔离级别的语法代码如下:事务隔离级别的作用范围分为两种: 全局级:对所有的会话有效 会话级:只对当前的会话有效例如,设置会话级隔离级别为READ COMMITTED:或:设置全局级隔离级别为READ COMMITTED:......
2023-10-29
假如有莱钢集团与保利建设两家企业,它们谈成了一笔生意,即保利建设向莱钢采购2亿元的建筑钢材。但合同要求保利建设需先向莱钢支付500万的预付款,然后才配送钢材。两家公司都拥有某银行的账户,所以双方财务人员决定通过该银行进行转账。下面创建该银行数据库,并创建账户信息表,存放账户信息,具体的T-SQL如例6.1所示。
例6.1:
执行上述SQL语句,结果如图6.1所示。
图6.1 莱钢、保利的账户金额
现在来模拟转账:将保利建设的余额转账500万到莱钢集团的账户。实现转账需要两条UPDATE语句,即莱钢集团的账户增加500万,保利建设的账户减少500万。
模拟转账的语句如例6.2所示。
例6.2:
(www.chuimin.cn)
例6.2中语句执行后第2条语句会出现语法错误,以下是转账结果,如图6.2所示。
图6.2 转账结果
发现转账的结果是:莱钢集团的账户增加了500万变为1000万,而保利建设的账户并没有减少。这时两家公司账户余额总和为1000万,多出了500万。
通过报错的信息可以发现,是因为前面sql语句中出现了语法错误而造成的。转账前两个账户的余额是1000万,转账后变成了1500万,多出了500万。
在实际的开发中肯定不允许出现这样的情况。使用这样的转账软件会让银行严重亏损,甚至破产。
解决这一问题,可以使用事务。事务可以将转账所需的两条UPDATE语句当作一个整体。如果其中任何一条语句出现错误,则整个转账业务失败,两个账户的余额也恢复到原有金额,从而确保转账前后的余额总和不变。
使用事务就可以防止这种错误的发生,事务的作用是:要么所有操作全部完成,要么所有操作全部不执行。这样一来,要么增加和减少的都执行完毕,一旦出错,就回滚到什么都没有执行的状态。
有关MySQL数据库设计与实现的文章
事务的隔离级别就是用来设置事务在读取数据时的隔离状态,提高数据并发使用效率的一种手段。事务的隔离级别由低到高可分为5个级别。MySQL默认级别,这种隔离级别可以避免“不可重复读取”,达到可重复读取。更改事务的隔离级别的语法代码如下:事务隔离级别的作用范围分为两种: 全局级:对所有的会话有效 会话级:只对当前的会话有效例如,设置会话级隔离级别为READ COMMITTED:或:设置全局级隔离级别为READ COMMITTED:......
2023-10-29
在此情况下,就需要用户优先考虑使用MySQL事务处理。在MySQL中,事务由单独单元的一个或多个SQL语句组成。通过InnoDB和BDB类型表,MySQL事务能够完全满足事务安全的ACID测试,但是并不是所有表类型都支持事务,如MyISAM类型表就不能支持事务,只能通过伪事务对表实现事务处理。当用户希望已经存在的表支持事务处理,则可以应用ALTER TABLE命令指定数据表的类型实现对表的类型更改操作,使原本不支持事务的数据表更改为支持事务处理的类型。......
2023-10-29
本节介绍MySQL支持的数据类型,提供关于每种类型的名称、作用、格式和范围的信息。TIMETIME数据类型负责存储时间信息,支持的范围相当大,不仅足以表示标准和军用时间格式,还可以表示扩展时间间隔。注意,对于MySQL版本4.1及更新版本,不可以指定该数据类型的大小。......
2023-10-29
单语句存储过程非常有用,但存储过程的真正功能在于它能够封装和执行多个语句。因为这两个应用程序都需要能够计算奖金数额,所以这个任务非常适合使用存储函数实现。本节余下部分主要介绍创建多语句存储过程时常用的语法。......
2023-10-29
这一节将重点讨论促使MySQL风行的一些关键特性。接下来,还将提供有关MySQL产品两个主要里程碑版本的重要信息。庞大的开源社区:MySQL之所以如此流行和受欢迎,很大一部分功劳要归功于开源社区的积极支持。在开源社区中不仅能了解到MySQL的最新发展动态,还能快速地解决一些问题和难题。......
2023-10-29
在MySQL已经成功启动的前提下,输入以下命令:这样一个名为shop的数据库就创建成功了。图4.1查看系统内数据库在图4.1中,第一个数据库information_schema是MySQL自带的,该数据库存储了所有MySQL服务器管理的数据库信息,比如数据库名、数据库的表、表的数据类型及访问权限等。图4.2非法的数据库名如果要创建的数据库名字在MySQL中已经存在,也会发生错误。......
2023-10-29
E-R图是用来描述现实世界的模型,通过E-R图可以更准确、更方便地了解用户的需求。本节将介绍如何将E-R图转换为关系型数据库中的表,在1.4节将介绍如何审核表的结构是否规范。例如,可将“学员”实体转换为一个表,如图1.6所示。图1.9M∶N关系的转换......
2023-10-29
由于不是所有的用户都习惯于用命令行程序,所以开发了GUI程序。下面就介绍一下SQLyog。SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。图2.19SQLyog连接数据库进入管理界面,如图2.20所示。图2.22SQLyog查询视图结果视图,如图2.23所示。图2.23SQLyog结果视图数据库选择、常用工具栏,如图2.24所示。图2.25SQLyog菜单栏SQLyog常用技巧: Ctrl+Enter代码提示。......
2023-10-29
相关推荐