Cakephp-插入/更新/删除的事务模型

Cakephp-插入/更新/删除的事务模型,cakephp,model,transactions,innodb,commit,Cakephp,Model,Transactions,Innodb,Commit,我有一个表,它有几个字段,其中两个字段是“startdate”和“enddate”,它们标记记录的有效性。如果插入1条新记录,则新记录在开始日期和结束日期方面不能与其他记录重叠 因此,在插入新记录时,我可能需要调整已有记录的“startdate”和“enddate”的值,以便它们不会与新记录重叠。类似地,任何与新记录100%重叠的现有记录都需要删除 我的表是一个InnoDB表,我知道它支持这样的事务 是否有任何示例显示使用事务插入/更新/删除(所有事务都必须成功才能成功并提交其中任何一个事务)?

我有一个表,它有几个字段,其中两个字段是“startdate”和“enddate”,它们标记记录的有效性。如果插入1条新记录,则新记录在开始日期和结束日期方面不能与其他记录重叠

因此,在插入新记录时,我可能需要调整已有记录的“startdate”和“enddate”的值,以便它们不会与新记录重叠。类似地,任何与新记录100%重叠的现有记录都需要删除

我的表是一个InnoDB表,我知道它支持这样的事务

是否有任何示例显示使用事务插入/更新/删除(所有事务都必须成功才能成功并提交其中任何一个事务)? 我不知道怎么做。大多数示例只显示了saveAssociated()的用法,我不确定它是否能够满足删除操作的需要

谢谢 Kevin

也许您可以使用来搜索先前存在的记录,并在保存新记录之前将其删除

从文档中:

在此函数中放置任何预保存逻辑。此函数在模型数据成功验证后立即执行,但就在数据保存之前。如果要继续保存操作,此函数也应返回true


我认为您希望进行交易:

这应该允许您运行查询—启动事务,执行任何必需的操作,然后根据结果提交或回滚。尽管如此,根据您的描述,我认为在提交任何内容之前进行一些读取和调整数据可能是更好的方法。无论如何,交易都不是一个坏主意