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