Mysql 如何在每次单击按钮时更新所有行
我有一个python应用程序,它有一个管理仪表板 我有一个叫“更新数据库”的按钮。 (应用程序使用MySQL和SQLAlchemy) 单击后,它将进行API调用,获取数据列表并将其写入数据库,如果API调用返回了新记录,它将添加这些记录,并且不会复制当前的现有记录 然而,若API调用返回的项较少,它不会删除它们 因为我甚至没有“开始谷歌”的观点,所以我需要一些关于我的应用程序应该进行什么类型的SQL查询的指导 就像单击按钮一样,它需要遍历所有行:Mysql 如何在每次单击按钮时更新所有行,mysql,insert,Mysql,Insert,我有一个python应用程序,它有一个管理仪表板 我有一个叫“更新数据库”的按钮。 (应用程序使用MySQL和SQLAlchemy) 单击后,它将进行API调用,获取数据列表并将其写入数据库,如果API调用返回了新记录,它将添加这些记录,并且不会复制当前的现有记录 然而,若API调用返回的项较少,它不会删除它们 因为我甚至没有“开始谷歌”的观点,所以我需要一些关于我的应用程序应该进行什么类型的SQL查询的指导 就像单击按钮一样,它需要遍历所有行: 对已存在的更新记录进行更改 如果API调用返回
- 对已存在的更新记录进行更改
- 如果API调用返回了新的API,请添加新的API
- 删除API调用未返回的内容
一旦我发现了这一点,我将看看如何在SQLAlchemy中做到这一点。您可能希望将时间戳列设置为表上最新操作的时间,并让后台线程作为另一个操作删除旧行。我不知道有任何原子行为可以执行所需的数据重组。另一个令人满意的选择是将替换批写入临时表,重命名两个版本(swap)并删除旧表。HTH您正在寻找的被称为UPSERT或MERGE。“所有行上的更新”-这通常是架构设计不佳的标志。更新的东西可以单独存储吗?最好是在单个单元格中,而不是在很多行中?