Mysql 如何在每次单击按钮时更新所有行

Mysql 如何在每次单击按钮时更新所有行,mysql,insert,Mysql,Insert,我有一个python应用程序,它有一个管理仪表板 我有一个叫“更新数据库”的按钮。 (应用程序使用MySQL和SQLAlchemy) 单击后,它将进行API调用,获取数据列表并将其写入数据库,如果API调用返回了新记录,它将添加这些记录,并且不会复制当前的现有记录 然而,若API调用返回的项较少,它不会删除它们 因为我甚至没有“开始谷歌”的观点,所以我需要一些关于我的应用程序应该进行什么类型的SQL查询的指导 就像单击按钮一样,它需要遍历所有行: 对已存在的更新记录进行更改 如果API调用返回

我有一个python应用程序,它有一个管理仪表板

我有一个叫“更新数据库”的按钮。 (应用程序使用MySQL和SQLAlchemy)

单击后,它将进行API调用,获取数据列表并将其写入数据库,如果API调用返回了新记录,它将添加这些记录,并且不会复制当前的现有记录

然而,若API调用返回的项较少,它不会删除它们

因为我甚至没有“开始谷歌”的观点,所以我需要一些关于我的应用程序应该进行什么类型的SQL查询的指导

就像单击按钮一样,它需要遍历所有行:

  • 对已存在的更新记录进行更改
  • 如果API调用返回了新的API,请添加新的API
  • 删除API调用未返回的内容
这个操作叫什么,或者如何在mysql中实现


一旦我发现了这一点,我将看看如何在SQLAlchemy中做到这一点。

您可能希望将时间戳列设置为表上最新操作的时间,并让后台线程作为另一个操作删除旧行。我不知道有任何原子行为可以执行所需的数据重组。另一个令人满意的选择是将替换批写入临时表,重命名两个版本(swap)并删除旧表。HTH

您正在寻找的被称为UPSERT或MERGE。“所有行上的更新”-这通常是架构设计不佳的标志。更新的东西可以单独存储吗?最好是在单个单元格中,而不是在很多行中?