2

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

4

2 回答 2

2

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

  • 提供审计表
  • 运行后台作业以删除相应的文件

就像米奇说的,这也取决于你,你到底想做什么。

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

于 2012-06-02T01:01:06.600 回答
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 
于 2012-06-02T00:55:00.243 回答