当前位置: 首页 > 面试题库 >

事务内的mysql事务

吴安和
2023-03-14
问题内容

最近,在一个用于mysql数据库的PHP脚本中,我需要在恰好位于另一个事务内部的某个位置使用事务。我所有的测试似乎都表明这很好,但是我找不到有关此用法的任何文档。

我想确定-交易中的交易在mysql中是否有效?如果是这样,是否有办法找出嵌套事务中的层数?(即恢复到正常状态需要多少回滚)

预先感谢,Brian


问题答案:

手册的本页可能使您感兴趣: 12.3.3。
导致隐性提交的陈述
;
引用几句话:

本节中列出的语句(及其任何同义词)隐式结束事务,就好像您COMMIT在执行该语句之前已经完成了。

并且,在页面中走得更远:

事务控制和锁定语句。 BEGINLOCK TABLESSET autocommit = 1(如果该值不是1), ,。START TRANSACTION UNLOCK TABLES

另请参阅本段:

事务不能嵌套。
这是commit 您发出START TRANSACTION 语句或其同义词之一时对任何当前事务隐式执行的结果。



 类似资料:
  • 主要内容:一、事务(Transaction),二、MySql中的应用,三、源码分析,四、总结一、事务(Transaction) 事务是什么?按照书上说的就是系统的一套操作为了保持数据的完整性必须符合ACID的特性,即原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、 持久性(Durability)。原子性比较好理解,操作要么全执行完成,要么全不执行完,实现这种方式就要支持回滚操作。而一致性指的是事务在改变状态时,要保证所有的访问得到的结果是相同的。一

  • 问题内容: 我的数据库包含名为的表,该表由名为的一列组成,并且该表为空 假设我有2笔这样的交易 我以这种方式并行运行这两个事务,首先运行transaction1,然后在运行transaction1时运行transaction2。我希望结果将包含一些名称为TEJA的行。但是我得到了一个空洞的结果。请帮助我解释为什么结果为空? 问题答案: 这完全取决于您设置的。 您可以看到使用此查询设置了哪一个: 在

  • 问题内容: 在PHP文件说: 如果您以前从未遇到过事务,则它们提供4个主要功能:原子性,一致性,隔离性和持久性(ACID)。用外行的术语来说,事务中执行的任何工作,即使它是分阶段进行的,都可以保证在提交时安全地应用于数据库,并且不受其他连接的干扰。 题: 这是否意味着我可以让两个单独的php脚本同时运行事务,而又彼此不干扰? 通过 “ 干扰 ” 细化我的 意思 : 假设我们有下表: 如果我有两个脚

  • 问题内容: 我对事务与锁定表有些困惑,以确保数据库完整性,并确保SELECT和UPDATE保持同步,并且没有其他连接干扰它。我需要: 我需要确保没有其他查询会干扰并执行相同的操作(在该连接完成更新行之前读取“旧值”。 我知道我可以默认为只确保一次只有1个连接正在执行此操作,并在完成后将其解锁,但这似乎有点过头了。将它包装在事务中是否会做同样的事情(确保没有其他连接会尝试同一进程而另一个仍在处理)?

  • 本文向大家介绍Mysql事务处理详解,包括了Mysql事务处理详解的使用技巧和注意事项,需要的朋友参考一下 一、Mysql事务概念  MySQL 事务主要用于处理操作量大,复杂度高的数据。由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务用来管理 insert,update,del

  • 问题内容: 我有一张交易表: 并且我希望选择所有特定类型(’R’)的商品,但不要立即(按照date_time字段的顺序)针对同一帐户提交另一种其他类型(’A’)交易的商品… 因此,在给出前面的示例的情况下,查询应引发以下行: (如您所见,第2行未显示,因为第3行“取消了” …第4行也被“第6行“取消了”;第7行出现了(即使帐户003属于已取消的第2行) ,这一次在第7行中不会被任何“ A”行取消;