背景
上篇文章我们介绍了MySQL支持的compound statement SQL的语法。有同学指出这个只是“部分compound”,因为这种多语句语法中不支持if这样的逻辑操作,因此在业务中的使用会受限。
这里我们给出一个常见的事务的逻辑。
1) 更新一行
2)若更新成功一行,则在另外一个表中插入一行,否则事务回滚。
在这样的需求下,就是由于少了逻辑判断,导致无法用compound statement发整个事务,因此需要多次交互。
新增HINT
在这类需求中我们发现,其实我们要的只是一个判断更新是否成功的判断。
因此设计这样的HINT及逻辑:
在UPDATE和DELETE语句中增加HINT /*TARGET_AFFECT_ROWS n*/表示这个语句要求修改n行,若不满足这个条件,则认为事务需要回滚。
使用
有了这个功能,在实现上诉的业务逻辑时,我们就能直接将以下语句发给Server:
delimiter ;;
begin; update /*TARGET_AFFECT_ROWS 1*/ t1 set b=b+1 where a=1 and b>=0; insert into ….; commit;;
这样t1表中a=1这行的b值<0时, 整个事务无效.
小结
其好处就是
1\ 在正常执行时,只需要一次交互
2\ 在需要回滚时,无需再发一个rollback命令。
另外,特别说明,整个方案idea绝大部分来自于 @dbatools
相关推荐
标题中的"css.zip_affect6fy_dts_python"暗示了这个压缩包可能包含了与CSS(层叠样式表)相关的代码,同时提到了"affect6fy"、"dts"和"python"这三个标签。"affect6fy"可能是项目或作者的别名,"dts"通常指的是数据...
"affect1m6"可能是该显示器的一个特定型号或特性代码,暗示了某种独特的显示效果或者技术指标。接下来,我们将深入探讨这款显示器的数据手册所涵盖的重要知识点。 首先,LCD显示器的核心是其显示面板,ZJ050NA-08C...
在这个项目中,C#被用来编写OCR应用程序的代码,包括用户界面、与百度API的交互以及图像处理等功能。 2. **OCR技术**:OCR技术通过识别图像中的形状和线条,将其转化为可编辑和搜索的文本。本项目利用了百度的OCR...
多目标优化与传统的单目标优化不同,后者只关注一个目标函数的最优值。然而,在实际问题中,往往存在多个相互竞争的目标,如成本、效率、质量等。多目标优化算法的任务是找到一组解决方案,这些方案在所有目标上都尽...
DLL: Renesas RX: When connecting to locked RX devices via JTAG (does not affect FINE!), 16-byte IDCODE (OSIS) could be rejected even though the correct code was given. Fixed. DLL: Renesas S7G2: QSPI ...
-target type specify target file type ("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) -apad audio pad -frames number set the number of frames to output -filter filter_graph set ...
本设计主要研究设计了电能质量相关指标和影响的各要素,然后叙述国内外相关研究设计成果,介绍了有关电能质量方面的一些概念,给出本课题要研究设计的主要内容,在此基础上,进一步分析了哪些因素能够影响到电能质量...
To support SERIALIZABLE transaction semantics, SQL Server needs to lock sets of rows specified by a predicate, such as WHERE salary BETWEEN 30000 AND 50000 SQL Server needs to lock data that does ...
"GROUP_AFFECT_EMOTION_RECOGNITION"是一个项目或研究主题,主要关注群体情感识别技术。在当前数字化社会中,理解和分析人们的情绪对于各种应用场景,如社交媒体分析、客户服务、市场研究等都至关重要。群体情感识别...
White_Paper_How Fiber-weave Effect Can Affect Your High-speed Design
根据给定的信息,我们可以从标题、描述以及部分内容中提炼出一系列与英语四级写作相关的知识点。 ### 英语四级作文万能句 英语四级考试对于很多考生来说是一个重要的里程碑,而写作部分更是考验考生综合运用语言...
对于那些希望使用 SQL Server 身份验证的用户来说,混合模式提供了一种解决方案;而对于习惯使用 Windows 身份验证的用户,则可以继续使用这种方式登录数据库。在实际应用中,混合模式通常用于以下几种情况: - ...
How will it affect you and your children? And how long will it be before some of the predictions occur? To avoid interruptions, I have put references and additional technical notes in endnotes. You ...
With this book, a team of well-known SQL Server experts introduces the many new features of the most recent version of SQL Server and deciphers how these changes will affect the methods that ...
标题中的"高精手持样机展示素材可用于adobe_affect.zip"表明这是一个高质量的手持设备样机集合,适用于Adobe Affect软件进行作品展示。然而, Adobe Affect 并不是一个广泛认知的软件名称,可能是指Adobe After ...
进化聚类算法是一种结合了进化计算与传统聚类方法的先进技术,主要应用于处理动态变化或者高复杂性的数据集。在MATLAB环境中实现这样的算法,能够有效地应对数据的不确定性,提高聚类效果。以下是对给定文件中涉及的...
Before we look at how SQL Server uses and manages its memory, we need to ensure a full understanding of the more common memory related terms. The following definitions will help you understand how SQL...
- **解析:**本题考查形容词的含义与语境搭配。句意表示昨天天气很好,因此决定出去开车兜风。选项A“glorious”意为“辉煌的,美好的”,符合语境。 2. **That is \_\_\_\_ behavior and nobody likes it.** - *...
非限定性定语从句通常与主句之间用逗号隔开,对先行词的修饰不是必需的,即使去掉这个从句也不会影响到句子的基本意思。它的引导词同样包括关系代词和关系副词,但还可能使用关系代词which来引导。 #### 四、关系...
;;;;;;;;... 1.... 2.... 3.... 4.... 5.... 6.... The syntax of the file is extremely simple.... Section headers (e.g.... at runtime.... There is no name validation.... (e.g.... previously set variable or directive (e.g....