我不确定此用例是否存在特殊情况 - 但感觉就像有人可能已经制作了某种有用的结构/技术/设计模式。
我的情况
我有一组从中间层(Java)执行的SQL命令,通过来自相关登台表的连接,将数据插入/更新/删除到一组非常大的表中。
我有更多SQL命令,它们根据登台表/实际表内容更新各种派生表。不同的表将通过不同的查询与不同的派生表进行交互(像往常一样)。这些命令可能必须与第一组交错,具体取决于用例 - 因此,我不一定要执行set 1,然后一次设置2。
我的问题
因此,我需要构建一系列按顺序执行的命令,如果其中任何一个失败,我需要触发回滚。我想以尽可能清晰,有文字记录的方式做到这一点。
有谁知道这种编码的标准方式?我确信任何从存储过程代码迁移到中间层代码的人都已经这样做了,如果有很好的选择,我不想重新发明轮子。
其他信息
我主要担心的是让一切都清楚。详细说明,我将有一组专门设计的查询:
同样的逻辑将适用于表B,C,D等。不幸的是,可能只有A和C需要一个额外的步骤,比如将删除同步到某个派生表,在删除后完成但在upserts之前。
我显然希望将更新表的所有逻辑分组,并且我想将所有逻辑分组以更新派生表,但是在执行时它们必须智能地交错,这听起来很混乱对我来说。