对逻辑删除的SQL执行方法、装置、计算机设备和存储介质与流程

文档序号:15492468发布日期:2018-09-21 20:54阅读:304来源:国知局
本发明涉及数据库
技术领域
:,特别是涉及基于逻辑删除的sql(structuredquerylanguage,结构化查询语言,简称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语句对应的实体类。在其中一个实施例中,根据逻辑删除标志识别所述数据表中的逻辑删除字段的步骤包括:确定实体类中逻辑删除标志所指向的属性,根据实体类中属性与数据表中字段的映射关系,得到所述属性对应的字段,作为逻辑删除字段。在其中一个实施例中,根据所述逻辑删除字段生成对应的sql操作条件,根据所述sql操作条件更新所述待执行sql语句的步骤包括:若所述操作类型为更新或者查询,则生成x.is_delete=k1的第一操作条件,在所述待执行sql语句的where属性中增加所述第一操作条件;若所述操作类型为删除,则生成x.is_delete=k2的第二操作条件,根据所述待执行sql语句创建一个更新类型的sql语句,在所述更新类型的sql语句的set属性中增加所述第二操作条件;其中,x表示待执行sql语句指向的数据表中的数据项,is_delete表示逻辑删除字段,k1、k2表示预设的逻辑值,当x.is_delete=k1时,表示数据x未被逻辑删除,当x.is_delete=k2时,表示数据x被逻辑删除。在其中一个实施例中,还包括:创建数据表对应的实体类,在所述实体类中设置用于表示逻辑删除的属性,为该属性设置对应的逻辑删除标志。在其中一个实施例中,在所述实体类中设置用于表示逻辑删除的属性,为该属性设置对应的逻辑删除标志的步骤包括:在所述实体类中设置boolean类型的、用于表示逻辑删除的属性,为该属设置逻辑删除标志@logicdelete。一种对逻辑删除的sql执行装置,包括:类型识别模块,用于获取待执行sql语句,识别所述待执行sql语句的操作类型;字段识别模块,用于根据实体类中预设的逻辑删除标志,识别待执行sql语句针对的数据表中的逻辑删除字段;所述实体类与所述数据表之间有映射关系;以及,修改执行模块,用于根据所述逻辑删除字段生成对应的sql操作条件,根据所述sql操作条件更新所述待执行sql语句,执行更新得到的sql语句。在其中一个实施例中,所述字段识别模块包括:类识别单元,用于当所述操作类型为删除、更新或者查询时,确定所述待执行sql语句对应的实体类;字段识别单元,用于检测所述实体类中预设的逻辑删除标志,根据逻辑删除标志识别数据表中的逻辑删除字段。在其中一个实施例中,还包括:第一执行模块,用于若检测到所述实体类中不包含预设的逻辑删除标志,执行所述待执行sql语句;和/或,第二执行模块,用于当确定出所述待执行sql语句的操作类型为新增操作类型时,执行所述待执行sql语句。在其中一个实施例中,所述类识别单元包括:数据表识别子单元,用于根据预设的sql解析器对所述待执行sql语句进行解析,得到所述待执行sql语句对应的语法树;遍历所述语法树的from节点和/或from节点的叶子节点,确定待执行sql语句针对的数据表;类识别子单元,用于根据实体类与数据表的映射关系,得到所述数据表对应的实体类,确定为所述待执行sql语句对应的实体类。在其中一个实施例中,所述字段识别单元包括:字段确定子单元,用于确定实体类中逻辑删除标志所指向的属性,根据实体类中属性与数据表中字段的映射关系,得到所述属性对应的字段,作为逻辑删除字段。在其中一个实施例中,所述修改执行模块包括:第一修改单元,用于若所述操作类型为更新或者查询,则生成x.is_delete=k1的第一操作条件,在所述待执行sql语句的where属性中增加所述第一操作条件;第二修改单元,用于若所述操作类型为删除,则生成x.is_delete=k2的第二操作条件,根据所述待执行sql语句创建一个更新类型的sql语句,在所述更新类型的sql语句的set属性中增加所述第二操作条件;其中,x表示待执行sql语句指向的数据表中的数据项,is_delete表示逻辑删除字段,k1、k2表示预设的逻辑值,当x.is_delete=k1时,表示数据x未被逻辑删除,当x.is_delete=k2时,表示数据x被逻辑删除。上述对逻辑删除的sql执行方法及装置,在获取到待执行sql语句之后,识别所述待执行sql语句的操作类型;当所述操作类型为删除、更新或者查询时,根据实体类中预设的逻辑删除标志识别数据表中的逻辑删除字段;根据所述逻辑删除字段生成对应的sql操作条件,根据生成的sql操作条件更新待执行sql语句,进而执行更新得到的sql语句。由此实现了自动对待执行sql进行转换,能适应所有的sql语句。用户在编辑sql语句的时候,无需关注数据库中的数据是否被逻辑删除,通过常规的sql语句,便可实现对逻辑删除的数据的sql操作,既简化了用户的sql操作难度,又提高的sql操作结果的准确度。一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述对逻辑删除的sql执行方法。上述计算机设备,通过所述处理器上运行的计算机程序,实现了通过常规的sql语句,便可实现对逻辑删除的数据的sql操作,既简化了用户的sql操作难度,又提高的sql操作结果的准确度。一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述对逻辑删除的sql执行方法。上述计算机存储介质,通过其存储的计算机程序,实现了通过常规的sql语句,便可实现对逻辑删除的数据的sql操作,既简化了用户的sql操作难度,又提高的sql操作结果的准确度。附图说明图1为一个实施例中对逻辑删除的sql执行方法的应用环境图;图2为一实施例的对逻辑删除的sql执行方法的示意性流程图;图3为一实施例的查询sql语句对应的语法树的示意图;图4为一实施例的删除sql语句对应的语法树的示意图;图5为另一实施例的对逻辑删除的sql执行方法的示意性流程图图6为一实施例的对逻辑删除的sql执行装置的示意性结构图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。结构化查询语言(简称sql),是一种重要的关系数据库操作语言,用于存取数据以及查询、更新和管理关系数据库;它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。本申请提供的对逻辑删除的sql执行方法,可以应用于如图1所示的计算机设备中。该计算机设备可以是终端,包括但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。在一实施例中,该计算机设备的内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现一种对逻辑删除的sql执行方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,如图2所示,提供了一种对逻辑删除的sql执行方法,包括以下步骤:s11,获取待执行sql语句,识别所述待执行sql语句的操作类型。常见sql语句的类型包含:查询类型、添加类型、修改类型和删除类型,其中,查询类型对应的语句也称作数据查询语言(dql:dataquerylanguage),添加类型、修改类型和删除类型对应的语句也称作数据操作语言(dml:datamanipulationlanguage)。对于查询类型,其语句也称为“数据检索语句”,用以从数据表中获得数据,确定数据怎样在应用程序给出。保留字select是用得最多的动词,其他常用的保留字包括where、orderby、groupby以及having等。这些保留字常与其他类型的sql语句一起使用。添加类型、修改类型和删除类型对应的语句包括动词分别为insert,update和delete,它们分别用于添加、修改和删除数据表中的记录。s12,当所述操作类型为删除、更新或者查询时,根据实体类中预设的逻辑删除标志,识别待执行sql语句针对的数据表中的逻辑删除字段;所述实体类与所述数据表之间有映射关系。所述实体类与数据库中的数据表对应,基于目前主流的持久层(也就是数据访问层)的框架,在数据库建了一个数据表,则需要按照规范在代码里面创建一个对应的实体类,并且实体类里面的属性映射着数据表的字段。通常sql语句所针对的对象是数据表中的数据项,例如:selectname,countryfromwebsites,该sql语句指的是从"websites"表中选取"name"和"country"数据项,即该sql语句针对的是数据表"websites"。由于数据表与实体类之间存在映射关系,由此,每个sql语句都有其对应的实体类。在一实施例中,该步骤的实现包括:当所述操作类型为删除、更新或者查询时,确定所述待执行sql语句对应的实体类。检测所述实体类中预设的逻辑删除标志,根据逻辑删除标志识别数据表中的逻辑删除字段。其中,所述逻辑删除标志是能够被执行sql的程序识别,相当于对实体类中用于表示逻辑删除状态的属性的注解。由于实体类的属性与数据表的字段存在映射关系,因此由此可识别出数据表中用于记录逻辑删除信息的字段。s13,根据所述逻辑删除字段生成对应的sql操作条件,根据所述sql操作条件更新所述待执行sql语句,执行更新得到的sql语句。在一实施例中,逻辑删除字段对应的值为逻辑值,根据逻辑删除字段生成的sql操作条件包括两类,一类为对应数据项被逻辑删除的条件,一类为对应数据项未被逻辑删除的条件。根据生成的sql操作条件修改待执行sql语句,即是在原来待执行sql语句中增加对相关数据项的逻辑删除信息的考虑,通过执行更新后的sql语句,能够得到更准确的数据结果。可以理解的是,逻辑删除字段对应的值还可以为其他数据类型。通过上述实施例的sql执行方法,用户在编辑sql语句的时候,无需关注数据库中的数据是否被逻辑删除,通过常规的sql语句,便可实现对逻辑删除的数据的sql操作,既简化了用户的sql操作难度,又提高的sql操作结果的准确度。在其中一个实施例中,本申请的sql执行方法还包括:创建数据表对应的实体类,在所述实体类中设置用于表示逻辑删除的属性,并且为该属性设置对应的逻辑删除标志。通过逻辑删除标志,使得程序能够有效识别用于记录数据逻辑删除信息的逻辑删除字段,以此为基础修改待执行sql语句。可以理解的,参考图5所示,在一个实施例中,若检测到所述实体类中不包含预设的逻辑删除标志,执行所述待执行sql语句。此种情况下,不再对待执行sql语句进行转换,及直接执行获取到的待执行sql语句,不执行上述步骤s12以及步骤s13。因为如果实体类中不包含预设的逻辑删除标志,程序将无法有效识别用于记录数据逻辑删除信息的逻辑删除字段,在此情况下,执行原来的待执行sql语句,可防止逻辑删除字段识别出错导致sql执行结果的偏差。在一个实施例中,本申请的sql执行方法还包括:在确定所述待执行sql语句的操作类型的步骤之后,如果待执行sql语句的操作类型为新增操作类型,则执行所述待执行sql语句。即在此种情况下,不再对待执行sql语句进行转换,及直接执行获取到的待执行sql语句,不执行上述步骤s12以及步骤s13。由于新增操作和数据的逻辑删除状态无关,因此不需要修改待执行的sql,也不影响sql执行结果的准确性。在其中一个实施例中,在所述实体类中设置boolean类型的属性isdeleted,用于表示逻辑删除的属性;在属性isdeleted之前,设置逻辑删除标志。例如:数据库有个数据表“t_user_info”为:对应地,需要在程序里面就创建一个对应的实体类,实体类的属性对应数据表的字段,该实体类可以为:该实体类中的逻辑删除标志为@logicdelete,其执行的属性是isdeleted,而属性isdeleted映射着数据表中的is_deleted字段,实现逻辑删除需要先知道逻辑删除字段,而@logicdelete就是用来识别逻辑删除字段的。基于上述示例,在其中一个实施例中,根据逻辑删除标志识别所述数据表中的逻辑删除字段的步骤包括:确定实体类中逻辑删除标志所指向的属性,根据实体类中属性与数据表中字段的映射关系,得到所述属性对应的字段,作为逻辑删除字段。由此能够快速准确的确定出逻辑删除字段。在其中一个实施例中,确定所述待执行sql语句对应的实体类的步骤包括:根据预设的sql解析器对所述待执行sql语句进行解析,得到所述待执行sql语句对应的语法树;遍历所述语法树的from节点和/或from节点的叶子节点,确定待执行sql语句针对的数据表;根据实体类与数据表的映射关系,得到所述数据表对应的实体类,确定为所述待执行sql语句对应的实体类。例如:若待执行sql语句是查询语句、删除语句或者更新语句,需要对待执行sql语句进行分析,可以使用开源工具druid里面的sql解析器对待执行sql语句进行解析,解析工具能把sql语句解析成一棵语法树。查询sql语句分析出的结果是一个selectstatement的对象,里面主要包含selectlist、from、where属性,更新sql语句分析出的结构是一个updatestatement的对象,里面主要包含了setitem、from、where属性;删除sql语句分析出的结构是一个deletestatement的对象,里面主要包含了from、where属性。查询sql语句对应的语法树参见图3所示,更新sql语句对应的语法树参见图4所示。通过sql语句对应的语法树,能够快速确定出待执行sql语句对应的实体类。在一实施例中,可以在遍历语法树的过程中修改语法树对应节点的数据,从而达到修改待执行sql的目的。在其中一个实施例中,根据所述逻辑删除字段生成对应的sql操作条件,根据所述sql操作条件更新所述待执行sql语句的步骤包括:若所述操作类型为更新或者查询,则生成x.is_delete=k1的第一操作条件,在所述待执行sql语句的where属性中增加所述第一操作条件;若所述操作类型为删除,则生成x.is_delete=k2的第二操作条件,根据所述待执行sql语句创建一个更新类型的sql语句,在所述更新类型的sql语句的set属性中增加所述第二操作条件。其中,x表示待执行sql语句指向的数据表中的数据项,is_delete表示逻辑删除字段,k1、k2表示预设的逻辑值,当x.is_delete=k1时,表示数据x未被逻辑删除,当x.is_delete=k2时,表示数据x被逻辑删除。下面以查询sql语句和删除sql语句为例,对待执行sql语句的更新实现进行说明:假设待执行的查询sql语句为:selectu.*,th.*romt_user_infouleftjoint_user_healththonu.id=th.user_idwhereu.name=‘test’;解析该sql语句得到语法树如图3所示,当遍历到sqlexprtablesource节点时,获取到对应的表名,因为实体类和数据表是有映射关系的,因此可以进一步找到对应的实体类;判断实体类中有没有@logicdelete标志,如果有,则根据@logicdelete标志所针对的属性映射出数据表中对应的字段名,之后在待执行查询sql语句的where节点添加对应的逻辑删除条件,例如加上is_delete=0作为查询条件。基于此,得到上述待执行的查询sql语句对应的,更新后的sql语句为:selectu.*,th.*romt_user_infouleftjoint_user_healththonu.id=th.user_idwhereu.name=‘test’andu.is_delete=0andth.is_delete=0。可以理解的,若待执行sql语句为更新sql语句,更加上述同样的原理修改待执行sql语句,使得被逻辑删除的数据不能被修改,提高了sql更新结果的准确度。假设待执行的删除sql语句为:deletefromt_user_infouwhereu.name=test’;解析该待执行的删除sql语句,得到语法树如图4所示;对于delete操作,无法根据遍历sql语法树去直接修改其中的节点内容,以更新该删除sql语句,因为根节点已经是不同了。对此,可重新构造updatestatement的方式生成更新sql语句对应的分析树,因为如果要改成更新sql语句,from和where都是相同的,因此构造updatestatement节点时候,可以根据删除sql语句的deletestatement的from和where进行赋值,而updatestatement比deletestatement多一个setitem节点,这个setitem节点就是更新sql语句里面is_deleted=1这个语句的语法树节点。基于此可以将原删除sql语句的删除语句转换成逻辑删除中的删除语句。生成新的sql语句后替换原有sql语句去执行,即可达到逻辑删除的目的。基于此,得到上述待执行的删除sql语句对应的更新sql语句为:updatet_user_infousetu.is_deleted=1whereu.name=test’。在一个实施例中,本申请sql执行方法的实现途径可以为:预先按照mybatis的规范编写一个mybaits插件,该插件的功能是对待执行sql语句进行修改,达到改造待执行sql语句的目的,其原理是对mybatis中statementhandler中prepare方法进行拦截,也就是在执行prepare方法的时候会先调用插件的方法。mybatis是一个比较规范而且灵活的框架,提供实体类,通过该mybaits插件本身提供了接口可实现修改待执行sql语句的目的,因此可很方便的实现本申请的对逻辑删除的sql执行方法。可以理解的,也可以通过数据访问层的其他框架实现上述的对逻辑删除的sql执行方法,例如基于hibernate或者jdbc实现。hibernate封装得比较多,本身没有提供接口去改写sql语句,因此实现起来难度较大。jdbc是自己写sql去执行,可在执行sql前通过动态代理(模拟mybatis插件)实现对sql语句的改写,但jdbc没有做什么封装,所以要实现本申请的sql执行方法,需要用户另行增加实体类并加上逻辑删除标志,但是动态代理是jdbc本身没提供的,需要用户另行去实现。通过上述实施例,能自动对待执行sql进行转换,配置简单,理论上能适应所有的sql语句,用户在写sql的时候无需关注到底是delete数据还是逻辑删除数据.也不需要自己在写逻辑删除的操作sql。应该理解的是,对于前述的各方法实施例,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,方法实施例的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。基于与上述实施例中的对逻辑删除的sql执行方法相同的思想,本文还提供对逻辑删除的sql执行装置。在一个实施例中,如图6所示,本实施例的对逻辑删除的sql执行装置包括:类型识别模块501,用于获取待执行sql语句,识别所述待执行sql语句的操作类型;字段识别模块502,用于当所述操作类型为删除、更新或者查询时,根据实体类中预设的逻辑删除标志,识别待执行sql语句针对的数据表中的逻辑删除字段;所述实体类与所述数据表之间有映射关系;以及,修改执行模块503,用于根据所述逻辑删除字段生成对应的sql操作条件,根据所述sql操作条件更新所述待执行sql语句,执行更新得到的sql语句。在一实施例中,所述字段识别模块502包括:类识别单元,用于当所述操作类型为删除、更新或者查询时,确定所述待执行sql语句对应的实体类;以及,字段识别单元,用于检测所述实体类中预设的逻辑删除标志,根据逻辑删除标志识别数据表中的逻辑删除字段。在一实施例中,所述sql执行装置还包括:第一执行模块,用于若检测到所述实体类中不包含预设的逻辑删除标志,执行所述待执行sql语句。在一实施例中,所述sql执行装置还包括:第二执行模块,用于当确定出所述待执行sql语句的操作类型为新增操作类型时,执行所述待执行sql语句。在一实施例中,所述类识别单元包括:数据表识别子单元和类识别子单元。其中,数据表识别子单元,用于根据预设的sql解析器对所述待执行sql语句进行解析,得到所述待执行sql语句对应的语法树;遍历所述语法树的from节点和/或from节点的叶子节点,确定待执行sql语句针对的数据表;类识别子单元,用于根据实体类与数据表的映射关系,得到所述数据表对应的实体类,确定为所述待执行sql语句对应的实体类。在一实施例中,所述字段识别单元包括:字段确定子单元,用于确定实体类中逻辑删除标志所指向的属性,根据实体类中属性与数据表中字段的映射关系,得到所述属性对应的字段,作为逻辑删除字段。在一实施例中,所述修改执行模块503包括:第一修改单元和第二修改单元。其中,第一修改单元,用于若所述操作类型为更新或者查询,则生成x.is_delete=k1的第一操作条件,在所述待执行sql语句的where属性中增加所述第一操作条件;第二修改单元,用于若所述操作类型为删除,则生成x.is_delete=k2的第二操作条件,根据所述待执行sql语句创建一个更新类型的sql语句,在所述更新类型的sql语句的set属性中增加所述第二操作条件。其中,x表示待执行sql语句指向的数据表中的数据项,is_delete表示逻辑删除字段,k1、k2表示预设的逻辑值,当x.is_delete=k1时,表示数据x未被逻辑删除,当x.is_delete=k2时,表示数据x被逻辑删除。通过上述实施例的sql执行装置,实现了自动对待执行sql进行转换,能适应所有的sql语句。用户在编辑sql语句的时候,无需关注数据库中的数据是否被逻辑删除,通过常规的sql语句,便可实现对逻辑删除的数据的sql操作,既简化了用户的sql操作难度,又提高的sql操作结果的准确度。关于对逻辑删除的sql执行装置的具体限定可以参见上文中对于对逻辑删除的sql执行方法的限定,在此不再赘述。上述对逻辑删除的sql执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。此外,上述示例的对逻辑删除的sql执行装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述对逻辑删除的sql执行装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例的对逻辑删除的sql执行方法的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的对逻辑删除的sql执行方法的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。本文实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。在本文中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1