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