0

我使用原子提要从网络服务获取有关疾病、国家和疫苗的信息定期更新我的数据库表。每次调用网络服务时,我都会比较上次更新的日期,如果有新信息可用,我会清空表并再次插入所有数据。

但是数据非常大,如果在此过程中发生任何错误,整个表都是空的(因为我在更新开始时截断了表)。

我正在考虑先将数据插入到一个临时表中,然后在成功完成后只清空并复制到真实表中。但我想听听专家的意见,这是否是正确的解决方案,以及是否存在其他更好的解决方案。(我正在使用 PHP 和 mysql)

先感谢您

4

1 回答 1

0

如果我是你的情况,我将在我的数据库上使用 3 个表。第一个表用于保存当前数据,第二个表用于保存新数据,最后一个用于保存旧数据。

以下是如何与他们一起玩:

  1. 当您的脚本从 Web 服务接收数据时,将其放在第二个表(新数据)中,同时将您的第一个表(当前数据)移动到第三个表(旧数据)

  2. 做一些比较,如果你发现它们之间有新的东西,把它放到当前数据中。

  3. 如果出现问题,您仍然可以安全地替换为存储在“旧数据”中的先前数据。

因此,您将来不会再丢失任何数据...希望对您有所帮助...

于 2013-09-20T06:22:43.093 回答