Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在删除数据时作为插入sql进行备份?_Mysql_Sql_Hibernate - Fatal编程技术网

Mysql 如何在删除数据时作为插入sql进行备份?

Mysql 如何在删除数据时作为插入sql进行备份?,mysql,sql,hibernate,Mysql,Sql,Hibernate,为了方便在错误操作后恢复数据,我希望删除数据时能够备份删除数据的SQL,以便恢复数据 解决方案是什么?一个相对简单的解决方案是在实体上添加一个deleted标志,然后只更新该标志 然后,您需要向所有查询添加新子句,但也可以使用筛选器排除已删除的对象: @Entity @FilterDef(name = "deletedFilter") @Filter(name = "deletedFilter", condition = "deleted = 0

为了方便在错误操作后恢复数据,我希望删除数据时能够备份删除数据的SQL,以便恢复数据


解决方案是什么?

一个相对简单的解决方案是在实体上添加一个
deleted
标志,然后只更新该标志

然后,您需要向所有查询添加新子句,但也可以使用筛选器排除已删除的对象:

@Entity
@FilterDef(name = "deletedFilter")
@Filter(name = "deletedFilter", condition = "deleted = 0")
public class DeleteableEntity {
  private boolean deleted;
然后:

session.enableFilter("deletedFilter");

删除时触发写入另一个表,或软删除现有表,或删除前备份