我有一个旧版API应用程序,该API应用程序通过特定日期的API调用获取大量JSON数据。
为了使用新信息更新数据库,我必须删除与该日期相关的所有行,然后循环并插入所有新行。每个日期大约有1200行。插入需要作为“循环”完成,因为JSON数据需要在每一行上完成额外的工作。
这是定期发生的-大约每5分钟一次。
在这段时间内-有用户定期24x7访问当前数据。我有一些报告,有时它们在加载报告时没有数据,或者数据似乎不完整。
我的有根据的猜测是,他们正在删除和重新加载数据之间访问报表。我如何确保这种情况不会发生?
我需要知道的是数据库事务处理可以解决此问题吗?我知道数据库事务允许在操作期间如果发生某些故障而回滚-但是它们是否还允许在一个事务中进行无缝删除和更新?
即像这样的东西
try {
$db->beginTransaction();
$db->query('delete query');
$db->query('insert query');
$db->commit();
} catch (Exception $e) {
$db->rollback();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句