You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储函数的原子性疑问:事务限制及执行上下文影响

存储函数与事务的原子性疑问

与可显式启动和提交事务的存储过程不同,存储函数不能包含执行显式或隐式提交或回滚的语句。官方文档对此规定十分明确,但解释禁止原因时仅提及SQL“标准”未做要求,交由厂商决定,这就略显模糊。

我有个疑问:当存储函数在SELECT或DO命令的上下文中被调用时,这些命令的原子性会对存储函数产生影响吗?

这种情况下,存储函数中包含的命令会被视为一个事务,还是像未使用START TRANSACTION的存储过程那样各自作为独立事务?

前者似乎是正确的,这甚至能解释为何函数体内禁止提交事务——若出现问题,SELECT或DO可自动回滚所有更改,从而维持**“要么全有要么全无”**的原则,但这更多是推断,而非官方明确答案,文档本应涵盖此内容却未涉及。


内容的提问来源于stack exchange,提问作者sp3ctre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:22:00