MySQL:大量删除与各个回滚的关系的行

时间:2017-03-07 10:29:28

标签: mysql csv sql-delete dump rollback

我正在寻找执行大量删除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中的内容将脚本合并为一个?

感谢您的帮助和建议。

此致

0 个答案:

没有答案