我正在寻找执行大量删除MySQL行的最佳方法,同时能够在以后需要时单独回滚它们。
使用案例1:
- 输入:包含表格ID
的CSV文件
- 目标:从表中删除具有给定ID的行及其在数据库的其他表中的所有关系。生成一个脚本(每个id?),以便以后可以根据需要单独回滚数据。没有外国约束因此顺序无关紧要。
使用案例2:
- 输入:包含表格ID列表的CSV文件(与用例1相同的表格)
- 目标:使用用例1中生成的脚本来回滚CSV文件中的ID给出的所有数据(关系表)。
容量:每个CSV大约10k个标识符,1个表有5个直接关系,5个是间接关系(1个表位于其中)
我的问题是:
- 如何以及最简单/更好的方式执行这些操作? SQL转储/查询?用于生成Shell脚本的脚本? PHP脚本?其他
- 今天我已经拥有在服务器上运行的PHP脚本,其中包含数据库副本以执行其他操作(导出),因此它不会干扰生产数据库。运行在此服务器上生成SQL删除和回滚脚本的脚本是一个好习惯。然后他们会在晚上开始制作吗?或者是10k还好,所以它不会过多干扰生产?
- 如何生成单独的回滚脚本,以便以后可以在需要时大量运行(用例2)?使用mysqldump?根据CSV中的内容将脚本合并为一个?
感谢您的帮助和建议。
此致