[发明专利]对逻辑删除的SQL执行方法、装置、计算机设备和存储介质有效
申请号: | 201810225650.4 | 申请日: | 2018-03-19 |
公开(公告)号: | CN108563694B | 公开(公告)日: | 2021-04-13 |
发明(设计)人: | 林锡鑫 | 申请(专利权)人: | 广州视源电子科技股份有限公司;广州视睿电子科技有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/242;G06F16/23 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 冯右明 |
地址: | 510530 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 逻辑 删除 sql 执行 方法 装置 计算机 设备 存储 介质 | ||
本发明涉及对逻辑删除的SQL执行方法、装置、计算机设备和存储介质,应用于数据库技术领域。所述方法包括:获取待执行SQL语句,识别所述待执行SQL语句的操作类型;当所述操作类型为删除、更新或者查询时,根据实体类中预设的逻辑删除标志,识别待执行SQL语句针对的数据表中的逻辑删除字段;所述实体类与所述数据表之间有映射关系;根据所述逻辑删除字段生成对应的SQL操作条件,根据所述SQL操作条件更新所述待执行SQL语句,执行更新得到的SQL语句。本发明实施例解决了对逻辑删除的SQL执行结果不准确的问题的问题,简化了用户操作。
技术领域
本发明涉及数据库技术领域,特别是涉及基于逻辑删除的SQL(Structured QueryLanguage,结构化查询语言,简称SQL)执行方法、装置、计算机设备和存储介质。
背景技术
逻辑删除指的是,不真正的在数据库上执行delete操作删除数据,而是把数据的某个字段置为一个标记。同时,在数据库表里面针对该数据设置一个用于表示逻辑删除的字段(例如is_delete),如果该字段为1则表示数据被逻辑删除,如果该字段为0则表示数据未被逻辑删除。
在实现本发明的过程中,发明人发现现有技术中存在如下问题:在数据被用户逻辑删除之后,使用传统的SQL语句,将难以排除该数据,导致SQL执行结果无法满足要求。
发明内容
基于此,有必要针对现有方式对逻辑删除的SQL执行结果不准确的问题,提供一种对逻辑删除的SQL执行方法、装置、计算机设备和存储介质。
本发明实施例提供的方案包括:
一种对逻辑删除的SQL执行方法,包括:
获取待执行SQL语句,识别所述待执行SQL语句的操作类型;
当所述操作类型为删除、更新或者查询时,根据实体类中预设的逻辑删除标志,识别待执行SQL语句针对的数据表中的逻辑删除字段;所述实体类与所述数据表之间有映射关系;
根据所述逻辑删除字段生成对应的SQL操作条件,根据所述SQL操作条件更新所述待执行SQL语句,执行更新得到的SQL语句。
在其中一个实施例中,根据实体类中预设的逻辑删除标志,识别待执行SQL语句针对的数据表中的逻辑删除字段的步骤包括:
确定所述待执行SQL语句对应的实体类;
检测所述实体类中预设的逻辑删除标志,根据逻辑删除标志识别数据表中的逻辑删除字段。
在其中一个实施例中,还包括:
若检测到所述实体类中不包含预设的逻辑删除标志,执行所述待执行SQL语句;
和/或,
在确定所述待执行SQL语句的操作类型的步骤之后,还包括:
当待执行SQL语句的操作类型为新增操作类型时,执行所述待执行SQL语句。
在其中一个实施例中,确定所述待执行SQL语句对应的实体类的步骤包括:
根据预设的SQL解析器对所述待执行SQL语句进行解析,得到所述待执行SQL语句对应的语法树;遍历所述语法树的FROM节点和/或FROM节点的叶子节点,确定待执行SQL语句针对的数据表;
根据实体类与数据表的映射关系,得到所述数据表对应的实体类,确定为所述待执行SQL语句对应的实体类。
在其中一个实施例中,根据逻辑删除标志识别所述数据表中的逻辑删除字段的步骤包括:
确定实体类中逻辑删除标志所指向的属性,根据实体类中属性与数据表中字段的映射关系,得到所述属性对应的字段,作为逻辑删除字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州视源电子科技股份有限公司;广州视睿电子科技有限公司,未经广州视源电子科技股份有限公司;广州视睿电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810225650.4/2.html,转载请声明来源钻瓜专利网。