首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql 实现多种逻辑删除方案

Mysql 实现多种逻辑删除方案 新增逻辑删除字段方式 多deleted值 deleted: 0 代表未删除删除时把deleted赋值为时间戳UNIX_TIMESTAMP(NOW()) 采用备份表方式...常见的逻辑删除方式有以下几种:1.为相关的表结构新增一个逻辑删除字段deleted 0表示未删除,1表示已删除(目前最常见的方式;2....新增逻辑删除字段方式 字段中设置一个字段deleted:0表示未删除,1表示已删除。...还是以artifact表为例:这里要实现逻辑删除,我将新建一张artifact_bankend表,用来存储要删除的数据。...,有利于查询效率 缺点:实现比较麻烦,每一张需要逻辑删除的表都需要备份表 https://cloud.tencent.com/developer/article/1531915 发布者:全栈程序员栈长

1.1K30

mysql逻辑删除案例_实现数据逻辑删除的一种方案

什么是逻辑删除 所谓逻辑删除是指数据已经“不需要”了,但是并没有使用delete语句将这些数据真实的从数据库中删除,而只是用一个标志位将其设置为已经删除。...为什么需要逻辑删除 对数据进行逻辑删除,一般存在以下原因: 防止数据误删除,不能找回数据; 这些数据还具有一定的商业价值,比如用户的注册信息; 虽然这些数据可以删除,但是这些数据还有关联数据,这些关联数据不能删除...所以是否需要对数据进行逻辑删除,需要根据具体的业务场景,以及逻辑删除的优缺点进行综合考虑。 网友的一些建议 综合考虑,对于中小型的项目,逻辑删除所带来的好处有限,但带来的问题却很多。...但心里应该清除,当项目大到一定程度,对数据安全性的要求高到一定程度,使用逻辑删除代替物理删除是必然的,在后面的数据库设计中,可以先小范围的尝试使用逻辑删除,一旦开发模式成熟,就全面使用逻辑删除代替物理删除...如果有级联数据,也需要进行删除备份。不然数据的完整性就不存在了。 使用MyBatis-Plus实现逻辑删除 这边,我们使用MyBatis-Plus的逻辑删除功能来实现下上面介绍的方案一。

2.3K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java逻辑删除代码_MybatisPlus实现逻辑删除功能

    逻辑删除 你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。 什么是逻辑删除?...逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1是删除。...在逻辑上数据是被删除的,但数据本身依然存在库中。...(since 3.3.0,配置后可以忽略不配置步骤2) logic-delete-value: 1 # 逻辑删除值(默认为 1) logic-not-delete-value: 0 # 逻辑删除值(...userMapper.deleteById(1094592041087729666L); System.out.println(“影响行数:”+rows); } } 执行结果: 查看表中数据: 到此这篇关于MybatisPlus实现逻辑删除功能的文章就介绍到这了

    1.8K20

    逻辑删除还是物理删除

    看到标题,有的童鞋心中暗想“数据删除有什么可提的呢?不就是执行个delete语句吗?有什么难的呀?”其实呢数据删除没有你想的这么简单,一般情况下公司会明确的要求数据只能逻辑删除,不能物理删除。...那什么优势逻辑删除,什么又是物理删除呢?...除了这种方式外,还有一种恢复数据库的办法,那就是为MySQL配置延迟删除节点,也就是再弄一个MySQL数据库,让这两个数据库做延迟同步数据,当一个MySQL出现了误删除,因为有延迟同步,比如说延迟24小时数据再同步...,也就是再24小时内,都可以从第二个MySQL节点来同步数据,然后恢复到第一个MySQL节点上面,这也是恢复删除的办法,像这些开脑洞的方法,在MySQL集群PXC方案都有 物理删除的代价二 会让数据的主键值变的不连续...最后来说下逻辑删除 我们给t_user表做逻辑删除 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137063.html原文链接:https://javaforall.cn

    1.3K30

    MybatisPlus逻辑删除

    ** MybatisPlus——逻辑删除 ** 首先我们要知道为什么要进行逻辑删除逻辑删除可以理解为假删除,并不是真的将数据进行删除。...假删除只是为了数据安全起见,在数据库中增添一个字段,我们可以默认这个字段为1时数据被删除,而字段值为0时数据被删除 逻辑删除是为了方便数据恢复和保护数据本身价值的一种方案。...我们电脑里的回收站正是利用了逻辑删除,我们点击删除的文件不会被立刻删除,而是放入回收站,等我们反悔时可以将其进行还原。...在MybatisPlus中设置逻辑删除有以下几个步骤 1.首先为Strudent表添加logic_delete字段,通过判断logic_delete字段的数值,我们可以确定数据是否已被删除 2.如果...private String stuName; @Version private Integer version; private int stuAge; //逻辑删除字段

    67320

    MybatisPlus逻辑删除

    文章目录 一、配置 1.1、在application.yml配置文件中: 1.2、直接在实体类中指定逻辑删除的值 二、测试 2.1 逻辑删除 2.2 查询逻辑删除的数据 一、配置 1.1、在application.yml...private Integer logicFlag; } 1.2、直接在实体类中指定逻辑删除的值 @Data @TableName("tbl_user") public class User...fill = FieldFill.INSERT_UPDATE) private String name; @TableLogic(value = "1",delval = "-1") //逻辑删除字段...private Integer logicFlag; } 二、测试 数据库初始数据 2.1 逻辑删除 现在逻辑删除id为2的这条数据 @Test public void testLogicDelete...会将logic_flag字段设置成-1(-1是我们在application.yml或者@TableLogic注解中指定的值) 2.2 查询逻辑删除的数据 这时查询id为2的这条数据(被逻辑删除的数据)

    48310

    java 物理删除逻辑删除

    java 物理删除逻辑删除 逻辑删除:文件没有被真正的删除,只不过是文件名的第一个字节被改成操作系统无法识别的字符,通常这种删除操作是可逆的,就是说用适当的工具或软件可以把删除的文件恢复出来。...物理删除:指文件存储所用到的磁存储区域被真正的擦除或清零,这样删除的文件是不可以恢复的 物理删除是计算机处理数据时的一个概念。 与物理删除相对应的是逻辑删除。...逻辑删除就是对要要删除的数据打上一个删除标记,在逻辑上是数据是被删除的,但数据本身依然存在!而物理删除则是把数据从介质上彻底删除掉。...配置逻辑删除的步骤: 在配置文件yml中应该配置的信息 mybatis-plus: global-config: db-config: logic-delete-value: 1...# 逻辑删除值(默认为 1),该具体删除值和数据库中的表数据对应即可 logic-not-delete-value: 0 # 逻辑删除值(默认为 0),该具体删除值和数据库中的表数据对应即可

    1.3K30

    如何删除MySQL用户帐户

    MySQL允许您创建多个用户帐户并授予适当的权限,以便用户可以连接和管理数据库。如果不再需要用户帐户,则最好删除用户权限或完全删除用户帐户。 本教程介绍如何删除MySQL/MariaDB用户帐户。...如果您尝试删除的用户当前已登录,则不会关闭用户会话,并且用户将能够运行查询,直到会话结束。 会话关闭后,用户将被删除,它将无法再登录MySQL服务器。 不会自动删除用户创建的数据库和对象。...删除MySQL用户帐户 本节分步说明如何列出和删除MySQL用户帐户。 首先,使用root或其他管理用户登录MySQL shell。...现在用户已被删除,您可能还想删除与该用户关联的数据库。 总结 要删除MySQL用户帐户,请使用DROP USER语句,后跟要删除的用户的名称。 如果您有任何问题或反馈,请随时发表评论。...Nginx,MariaDB 10和PHP 7的WordPress  https://www.linuxidc.com/Linux/2019-03/157315.htm 如何创建MySQL用户帐户和授予权限

    3.1K20

    java逻辑删除_MybatisPlus中的删除逻辑删除及区别介绍

    删除又分为逻辑删除和物理删除,那么它们有什么区别呢? 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据。...逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录。...在我们日常开发中,为了保留数据,经常会使用逻辑删除的方式进行数据删除,下面我们就来看看物理删除逻辑删除怎么实现的吧 首先假设我有这样一张表 实体类: package com.atguigu.mybatis_plus.entity...: 物理删除比较简单,接下来我们看看逻辑删除怎么实现吧!...,deleted字段的值由0变成了1 测试后分析打印的sql语句,是一条update 注意:被删除前,数据的deleted 字段的值必须是 0,才能被选取出来执行逻辑删除的操作 (5)测试逻辑删除后的查询

    1.7K30

    MySQL 如何查找删除重复行?

    如何删除重复行 一个相关的问题是如何删除重复行。一个常见的任务是,重复行只保留一行,其他删除,然后你可以创建适当的索引,防止以后再有重复的行写入数据库。 同样,首先是弄清楚重复行的定义。...本文中,假设要保留的是第一行——id字段具有最小值的行,意味着你要删除其他的行。 也许最简单的方法是通过临时表。尤其对于MYSQL,有些限制是不能在一个查询语句中select的同时update一个表。...我们的任务是:删除所有重复行,除了分组中id字段具有最小值的行。因此,需要找出大小大于1的分组,以及希望保留的行。你可以使用MIN()函数。...这里的语句是创建临时表,以及查找需要用DELETE删除的行。...类似,如果排序的是c字段,相同值的b也会分到不同的组,无论如何是不能达到我们的目的的。

    6.6K10

    MySQL 如何查找删除重复行?

    如何删除重复行 一个相关的问题是如何删除重复行。一个常见的任务是,重复行只保留一行,其他删除,然后你可以创建适当的索引,防止以后再有重复的行写入数据库。 同样,首先是弄清楚重复行的定义。...本文中,假设要保留的是第一行——id字段具有最小值的行,意味着你要删除其他的行。 也许最简单的方法是通过临时表。尤其对于MYSQL,有些限制是不能在一个查询语句中select的同时update一个表。...我们的任务是:删除所有重复行,除了分组中id字段具有最小值的行。因此,需要找出大小大于1的分组,以及希望保留的行。你可以使用MIN()函数。...这里的语句是创建临时表,以及查找需要用DELETE删除的行。...类似,如果排序的是c字段,相同值的b也会分到不同的组,无论如何是不能达到我们的目的的。

    5.6K10

    mybatis-plus逻辑删除

    mybatis-plus:逻辑删除 不做真正的删除,在查询时添加一个where条件 例如在某宝上有一条不可描述的购买信息不想被看到,你要删除他,但是从平台的角度考虑是不能随便就彻底的删除掉数据的,那么有没有一个两个都可以满足的解决方式呢...,答案是有的——逻辑删除,不做真正意义的删除,在数据库中用一个字段做专门的标记,原本查询的sql语句就变成了这样: select * from tableName where 原先的查询条件 and 用来标记的字段...配置文件中配置 mybatis-plus: global-config: db-config: logic-delete-field: flag # 全局逻辑删除的实体字段名(...since 3.3.0,配置后可以忽略不配置步骤2) logic-delete-value: 1 # 逻辑删除值(默认为 1) logic-not-delete-value:...运行测试方法,deleted字段被更新 以后的查找方法会被加上一个where条件 deleted=0; 从逻辑实现了数据的删除

    86030

    mybatisPlus之逻辑删除解读

    为什么会有逻辑删除 在我们对数据进行增删查改的时候,对于删除操作来说,我们思考一个问题,在实际开发中我们真的会将数据完成从数据库中删除掉么?...这里我们就采取逻辑删除的方案,逻辑删除的操作就是增加一个字段表示这个数据的状态,如果一条数据需要删除,我们通过改变这条数据的状态来实现,这样既可以表示这条数据是删除的状态,又保留了数据以便以后统。...null,另一个值支持配置为函数来获取值如now() 逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。...如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。...: 0 # 逻辑删除值(默认为 0) logic-delete-field:实体类的哪个字段作为logic-delete-field  logic-delete-value: 1 # 逻辑删除

    1.7K40
    领券