竹笋

首页 » 问答 » 常识 » 卓象程序员ThinkPHP5实现事务功能
TUhjnbcbe - 2023/11/12 21:47:00
北京最权威白癜风医院 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/

一、什么是事务?

事务就是一段sql语句的批处理,但是这个批处理是一个atom(原子),不可分割,要么都执行,要么回滚(rollback)都不执行。

通俗点举个例子:

有一天张三给李四要转钱,那么银行的数据库就要把张三的账户减去元(-),李四的账户就要增加元(+),这两个更新语句必须作为一个整体来执行,不然就会出现张三账户扣掉了元钱而李四账户并没有增加元钱,然而这种情况很难找出原因,所以就需要这俩个操作作为一个整体要么一起失败都没有执行,要么就一起成功一个增加元、一个减少元,这就是事务在实际中的具体体现。

二、事务的四个特性

1)、原子性(atomicity):原子性是指整个数据库事务是不可分割的工作单位

2)、一致性(consistency):一致性指事务将数据库从一种状态转变为下一种一致的状态。在事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。

3)、隔离性(isolation):一个事务的影响在该事务提交之前对其他事务都不可见---通过锁来实现。

4)、持久性(durability):事务一旦提交,其结果就是永久性的。

三、务依赖InnoDB存储引擎

事务的执行是需要存储引擎来支持的,那么存储引擎是什么呢?

存储引擎顾名思义就是数据库如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

主要存储引擎:Myisam、InnoDB、MEMORY、Archive、BDB等,其中MyISAM与InnoDB的区别如下:

修改存储引擎的方法为,如图:

1、首先右键打开设计表菜单

2、选择“选项”选项卡,在第一行中的引擎下拉菜单中选择InnoDB即可;

四、执行事务的三步骤

我们还是继续刚才的转账的案例,

1、开启事务:

Starttransaction

2、执行sql语句组

updateaccountsetmoney=money+whereid=2

updateaccountsetmoney=money-whereid=1

3、

1
查看完整版本: 卓象程序员ThinkPHP5实现事务功能