如何跟踪MySQL中表中已删除的行?

时间:2012-06-02 00:47:43

标签: php mysql

我在我的MySQL表上设置了外键约束,它们在删除时级联。我需要跟踪删除用户时受影响的所有其他表和行,因为涉及的物理文件也必须删除。有没有办法记录这个?

2 个答案:

答案 0 :(得分:1)

我认为不是。 但你可以做一点小动作。例如,在删除表A中的记录之前,请选择与已删除记录相关的其他表中的所有记录。

   $sql = "SELECT Id FROM b WHERE b.a_id ='$deleted_A_Id'";
   //delete physical file and any other things
   $sql = "DELETE FROM A where A.id = '$deleted_A_Id'";
   //just exec sql the normal way 

答案 1 :(得分:1)

好吧,通过在每个表上添加一个触发器,您可以轻松地跟踪:

  • 提供审核表
  • 运行后台作业以删除相应的文件
像米奇说的那样,这也取决于你,你想要做的事情。

例如,您可能还希望将这些行保留用于历史记录。在这种情况下,您可以通过在表中使用“已删除”标志来实现自己的行“抑制”,因此,只要您想要删除行,就可以将其设置为1。 [...]