CN107180048B - 数据库中幂等状态的识别方法和装置 - Google Patents

数据库中幂等状态的识别方法和装置 Download PDF

Info

Publication number
CN107180048B
CN107180048B CN201610137876.XA CN201610137876A CN107180048B CN 107180048 B CN107180048 B CN 107180048B CN 201610137876 A CN201610137876 A CN 201610137876A CN 107180048 B CN107180048 B CN 107180048B
Authority
CN
China
Prior art keywords
database
preset
field
idempotent
index table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610137876.XA
Other languages
English (en)
Other versions
CN107180048A (zh
Inventor
李兆贵
樊红伟
申远
卢嘉喜
李少翀
王义龙
蒋超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Fortune Shanghai Financial Information Service Co ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201610137876.XA priority Critical patent/CN107180048B/zh
Publication of CN107180048A publication Critical patent/CN107180048A/zh
Application granted granted Critical
Publication of CN107180048B publication Critical patent/CN107180048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种数据库中幂等状态的识别方法和装置,该数据库中幂等状态的识别方法包括获取用户的请求参数;根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名;将每个预设字段对应的字段值插入索引表,并判断数据库是否报错;如果判断数据库未报错,则判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中。通过本发明能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。

Description

数据库中幂等状态的识别方法和装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库中幂等状态的识别方法和装置。
背景技术
幂等状态的是指任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。例如,用户A转账给用户B时,在网络层抖动的情况下,一个转账请求有可能往数据库发送两次转账请求,数据库需要控制不能给用户B转账两次钱,造成用户A止损,相关技术中,通过使用数据库中多个业务表的唯一索引来识别幂等状态。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种数据库中幂等状态的识别方法,能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。
本发明的另一个目的在于提出一种数据库中幂等状态的识别装置。
为达到上述目的,本发明第一方面实施例提出的数据库中幂等状态的识别方法,包括:获取用户的请求参数;根据所述请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,所述索引表的预设字段包括业务表名;将所述每个预设字段对应的字段值插入所述索引表,并判断数据库是否报错;如果判断所述数据库未报错,则判定未出现幂等状态,并将所述请求参数插入所述数据库中与所述业务表名对应的业务表中。
本发明第一方面实施例提出的数据库中幂等状态的识别方法,通过根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名;将每个预设字段对应的字段值插入索引表,在数据库未报错时,判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中,能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。
为达到上述目的,本发明第二方面实施例提出的数据库中幂等状态的识别装置,包括:获取模块,用于获取用户的请求参数;生成模块,用于根据所述请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,所述索引表的预设字段包括业务表名;判断模块,用于将所述每个预设字段对应的字段值插入所述索引表,并判断数据库是否报错;插入模块,用于在判断所述数据库未报错时,判定未出现幂等状态,并将所述请求参数插入所述数据库中与所述业务表名对应的业务表中。
本发明第二方面实施例提出的数据库中幂等状态的识别装置,通过根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名;将每个预设字段对应的字段值插入索引表,在数据库未报错时,判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中,能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的数据库中幂等状态的识别方法的流程示意图;
图2是本发明另一实施例提出的数据库中幂等状态的识别方法的流程示意图;
图3是本发明另一实施例提出的数据库中幂等状态的识别方法的流程示意图;
图4是本发明另一实施例提出的数据库中幂等状态的识别装置的结构示意图;
图5是本发明另一实施例提出的数据库中幂等状态的识别装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的数据库中幂等状态的识别方法的流程示意图,如图1所示,该数据库中幂等状态的识别方法包括:
S101:获取用户的请求参数。
幂等状态的是指任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。例如,用户A转账给用户B时,在网络层抖动的情况下,一个转账请求有可能往数据库发送两次转账请求,数据库需要控制不能给用户B转账两次钱,造成用户A止损,相关技术中,通过使用数据库中多个业务表的唯一索引来识别幂等状态。
在本发明的实施例中,用户的请求参数为用户发起请求需要往数据库表中插入的参数,用户的请求参数可以为一个或者多个,用户的请求参数的具体个数由数据库所支持的业务需求设定。用户的请求参数例如,在用户使用ATM机进行银行汇款的过程中,用户输入的金额、收款账号,以及收款人姓名等参数。
在本发明的实施例中,可以由终端设备获取用户的请求参数,在获取到用户的请求参数后,还需要对用户的请求参数进行合法性校验,其中,合法性校验例如校验用户输入的金额是否合法,具体如,用户输入的金额若为字母,则判定用户输入的金额不合法,若为数字,则判定合法。进一步,若用户的请求参数通过合法性校验,还需要对其进行业务校验,例如,在用户使用ATM机进行银行汇款的过程中,如果用户输入的金额超过ATM机设置的单笔交易限额,则判定业务校验不合格。
在本发明的实施例中,终端设备获取用户的请求参数,对用户的请求参数进行校验后,将用户的请求参数传送至数据库。
可选地,在获取用户的请求参数之前,还包括:在数据库中建立索引表。
可选地,在获取用户的请求参数之前,还包括:根据预设规则对数据库中的总业务表进行分区处理,以得到分区后的预设个数的业务表。
S102:根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名。
其中,在数据库中,表的“列”被称为“字段”,每个字段包含某一专题的信息。例如,在“通讯录”数据库中,“姓名”、“联系电话”是表中所有行共有的属性,可以把这些列称为“姓名”字段和“联系电话”字段。
在本发明的实施例中,预设字段由数据库开发人员根据用户的业务需求所抽象出的字段,索引表的预设字段可以为一个或者多个。
在本发明的实施例中,索引表为在获取用户的请求参数之前建立,具体地,索引表的预设字段包括ID、唯一键、业务表名、唯一索引的名称和插入日期中的一个或多个。
索引表的建立规则可以例如为:ID的数据类型为VARCHAR2(32),可以标记为索引表的主键,唯一键的数据类型为VARCHAR2(32),业务表名为用户的请求参数需要插入的业务表的表名,业务表名的数据类型为VARCHAR2(32),唯一索引的名称的数据类型为VARCHAR2(32),为索引表的唯一索引的索引名,可以由数据库自动生成,插入日期的数据类型为DATE,标识用户的请求参数插入的日期,本发明实施例对此不作限制。
具体地,可以根据用户的请求参数需要插入的业务表的表名生成索引表的预设字段中的业务表名对应的字段值,根据用户的请求参数插入的顺序升序生成索引表的预设字段中的ID对应的字段值,根据数据加密处理算法对业务表中的一个或者多个唯一索引对应的字段值进行数据加密处理,以生成索引表的预设字段中唯一键对应的字段值,其中,数据加密处理算法例如消息摘要算法(Message Digest Algorithm,MD5),由数据库自动生成索引表的预设字段中的唯一索引的名称对应的字段值,根据用户的请求参数插入的日期生成索引表的预设字段中的插入日期对应的字段值。
S103:将每个预设字段对应的字段值插入索引表,并判断数据库是否报错。
在本发明的实施例中,索引表的唯一索引可以设置为唯一键、业务表名、唯一索引的名称的组合。
其中,在数据库中,唯一索引是一种索引,唯一索引不允许数据表中具有索引值相同的行,从而禁止重复的索引或键值。
在本发明的实施例中,可以将步骤S102中生成的每个预设字段对应的字段值插入索引表中,并判断数据库是否报唯一性错,可以理解的是,根据唯一索引的特性,如果数据库报唯一性错,则可以判定插入重复的字段值,如果数据库未报唯一性错,则可以判定未插入重复的字段值。
S104:如果判断数据库未报错,则判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中。
在本发明的实施例中,如果数据库未报唯一性错,则根据唯一索引的特性可以判定未插入重复的字段值,未出现幂等状态,可以将用户的请求参数插入业务表中。
可选地,还包括:如果判断数据库报错,则判定出现幂等状态,并将请求参数丢弃。
可选地,当预设字段包括插入日期时,方法还包括:根据索引表的预设字段中插入日期对应的字段值与当前日期生成时间差值;判断时间差值是否大于预设时间差阈值;当时间差值大于预设时间差阈值时,删除插入日期对应的字段值所在行中每个预设字段的字段值。
本实施例中,通过根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名;将每个预设字段对应的字段值插入索引表,在数据库未报错时,判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中,能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。
图2是本发明另一实施例提出的数据库中幂等状态的识别方法的流程示意图,如图2所示,在图1所示实施例中步骤S101之前,还包括:
S201:根据预设规则对数据库中的总业务表进行分区处理,以得到分区后的预设个数的业务表。
在本发明的实施例中,分区处理是将总业务表的数据分成多个业务表的子集,具体地,预设规则可以为根据用户的请求参数插入时间,或者根据用户的请求参数的条数来分割。
通过对数据库中的总业务表进行分区处理,能够实现在分区后的业务表上进行用户的请求参数的更新和插入操作,有效提升数据库的处理数据的效率,提升数据库的性能。
S202:在数据库中建立索引表。
通过在数据库中建立索引表,可以避免对每个业务表建立唯一索引,实现数据库在索引表的层面识别幂等状态,提升数据库进行幂等操作的灵活性与适用性。
本实施例中,通过对数据库中的总业务表进行分区处理,能够实现在分区后的业务表上进行用户的请求参数的更新和插入操作,有效提升数据库的处理数据的效率,提升数据库的性能。通过在数据库中建立索引表,可以避免对每个业务表建立唯一索引,实现数据库在索引表的层面识别幂等状态,提升数据库进行幂等操作的灵活性与适用性。
图3是本发明另一实施例提出的数据库中幂等状态的识别方法的流程示意图,如图3所示,在图1所示实施例中步骤S104之后,还包括:
S301:根据索引表的预设字段中插入日期对应的字段值与当前日期生成时间差值。
在本发明的实施例中,当前日期为数据库进行获取时间差值操作时的日期。
在本发明的实施例中,当数据库中的索引表中的数据过大时,会占用数据库系统的磁盘空间,对数据库内存造成不必要的浪费,因此,需要通过根据用户请求参数的插入时间对索引表中的数据进行后期处理。
在本发明的实施例提出一种对索引表中的数据进行后期处理的方法,可以将预设字段中插入日期对应的字段值与当前日期进行比对,生成时间差值,以支持后续根据时间差值对索引表中的数据进行后期处理的方法步骤。
S302:判断时间差值是否大于预设时间差阈值,若是,则执行步骤S303,否则执行步骤S304。
在本发明的实施例中,预设时间差阈值可以由数据库内置程序预先设定。
S303:删除插入日期对应的字段值所在行中每个预设字段的字段值。
在本发明的实施例中,当时间差值大于预设时间差阈值时,删除插入日期对应的字段值所在行中每个预设字段的字段值,有效节省了数据库的磁盘空间,减轻数据库的内存负荷,进一步提升幂等识别过程中的数据库性能。
S304:不作任何处理。
本实施例中,通过在索引表的预设字段中插入日期对应的字段值与当前日期的时间差值大于预设时间差阈值时,删除插入日期对应的字段值所在行中每个预设字段的字段值,有效节省了数据库的磁盘空间,减轻数据库的内存负荷,进一步提升幂等识别过程中的数据库性能。
图4是本发明另一实施例提出的数据库中幂等状态的识别装置的结构示意图,如图4所示,该数据库中幂等状态的识别装置40包括:
获取模块401,用于获取用户的请求参数。
幂等状态的是指任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。例如,用户A转账给用户B时,在网络层抖动的情况下,一个转账请求有可能往数据库发送两次转账请求,数据库需要控制不能给用户B转账两次钱,造成用户A止损,相关技术中,通过使用数据库中多个业务表的唯一索引来识别幂等状态。
在本发明的实施例中,用户的请求参数为用户发起请求需要往数据库表中插入的参数,用户的请求参数可以为一个或者多个,用户的请求参数的具体个数由数据库所支持的业务需求设定。用户的请求参数例如,在用户使用ATM机进行银行汇款的过程中,用户输入的金额、收款账号,以及收款人姓名等参数。
在本发明的实施例中,可以由终端设备获取用户的请求参数,在获取到用户的请求参数后,还需要对用户的请求参数进行合法性校验,其中,合法性校验例如校验用户输入的金额是否合法,具体如,用户输入的金额若为字母,则判定用户输入的金额不合法,若为数字,则判定合法。进一步,若用户的请求参数通过合法性校验,还需要对其进行业务校验,例如,在用户使用ATM机进行银行汇款的过程中,如果用户输入的金额超过ATM机设置的单笔交易限额,则判定业务校验不合格。
在本发明的实施例中,终端设备获取用户的请求参数,对用户的请求参数进行校验后,将用户的请求参数传送至数据库。
生成模块402,用于根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名。
其中,在数据库中,表的“列”被称为“字段”,每个字段包含某一专题的信息。例如,在“通讯录”数据库中,“姓名”、“联系电话”是表中所有行共有的属性,可以把这些列称为“姓名”字段和“联系电话”字段。
在本发明的实施例中,预设字段由数据库开发人员根据用户的业务需求所抽象出的字段,索引表的预设字段可以为一个或者多个。
在本发明的实施例中,索引表为在获取用户的请求参数之前建立,具体地,索引表的预设字段包括ID、唯一键、业务表名、唯一索引的名称和插入日期中的一个或多个。
索引表的建立规则可以例如为:ID的数据类型为VARCHAR2(32),可以标记为索引表的主键,唯一键的数据类型为VARCHAR2(32),业务表名为用户的请求参数需要插入的业务表的表名,业务表名的数据类型为VARCHAR2(32),唯一索引的名称的数据类型为VARCHAR2(32),为索引表的唯一索引的索引名,可以由数据库自动生成,插入日期的数据类型为DATE,标识用户的请求参数插入的日期,本发明实施例对此不作限制。
具体地,可以根据用户的请求参数需要插入的业务表的表名生成索引表的预设字段中的业务表名对应的字段值,根据用户的请求参数插入的顺序升序生成索引表的预设字段中的ID对应的字段值,根据数据加密处理算法对业务表中的一个或者多个唯一索引对应的字段值进行数据加密处理,以生成索引表的预设字段中唯一键对应的字段值,其中,数据加密处理算法例如消息摘要算法(Message Digest Algorithm,MD5),由数据库自动生成索引表的预设字段中的唯一索引的名称对应的字段值,根据用户的请求参数插入的日期生成索引表的预设字段中的插入日期对应的字段值。
可选地,生成模块402具体用于:根据数据加密处理算法对业务表中的一个或者多个唯一索引对应的字段值进行数据加密处理,以获得索引表的预设字段中唯一键对应的字段值。
判断模块403,用于将每个预设字段对应的字段值插入索引表,并判断数据库是否报错。
在本发明的实施例中,索引表的唯一索引可以设置为唯一键、业务表名、唯一索引的名称的组合。
其中,在数据库中,唯一索引是一种索引,唯一索引不允许数据表中具有索引值相同的行,从而禁止重复的索引或键值。
在本发明的实施例中,可以将生成模块402生成的每个预设字段对应的字段值插入索引表中,并判断数据库是否报唯一性错,可以理解的是,根据唯一索引的特性,如果数据库报唯一性错,则可以判定插入重复的字段值,如果数据库未报唯一性错,则可以判定未插入重复的字段值。
插入模块404,用于在判断数据库未报错时,判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中。
在本发明的实施例中,如果数据库未报唯一性错,则根据唯一索引的特性可以判定未插入重复的字段值,未出现幂等状态,可以将用户的请求参数插入业务表中。
可选地,另一个实施例中,如图5所示,该数据库中幂等状态的识别装置40还包括:
丢弃模块405,用于在判断数据库报错时,判定出现幂等状态,并将请求参数丢弃。
可选地,另一个实施例中,如图5所示,该数据库中幂等状态的识别装置40还包括:
建立模块406,用于在数据库中建立索引表。
通过在数据库中建立索引表,可以避免对每个业务表建立唯一索引,实现数据库在索引表的层面识别幂等状态,提升数据库进行幂等操作的灵活性与适用性。
可选地,另一个实施例中,如图5所示,该数据库中幂等状态的识别装置40还包括:
时间差值生成模块407,用于根据索引表的预设字段中插入日期对应的字段值与当前日期生成时间差值。
在本发明的实施例中,当前日期为数据库进行获取时间差值操作时的日期。
在本发明的实施例中,当数据库中的索引表中的数据过大时,会占用数据库系统的磁盘空间,对数据库内存造成不必要的浪费,因此,需要通过根据用户请求参数的插入时间对索引表中的数据进行后期处理。
在本发明的实施例提出一种对索引表中的数据进行后期处理的方法,可以将预设字段中插入日期对应的字段值与当前日期进行比对,生成时间差值,以支持后续根据时间差值对索引表中的数据进行后期处理的过程。
时间差值判断模块408,用于判断时间差值是否大于预设时间差阈值。
在本发明的实施例中,预设时间差阈值可以由数据库内置程序预先设定。
删除模块409,用于在时间差值大于预设时间差阈值时,删除插入日期对应的字段值所在行中每个预设字段的字段值。
在本发明的实施例中,当时间差值大于预设时间差阈值时,删除插入日期对应的字段值所在行中每个预设字段的字段值,有效节省了数据库的磁盘空间,减轻数据库的内存负荷,进一步提升幂等识别过程中的数据库性能。
可选地,另一个实施例中,如图5所示,该数据库中幂等状态的识别装置40还包括:
分区模块410,用于根据预设规则对数据库中的总业务表进行分区处理,以得到分区后的预设个数的业务表。
在本发明的实施例中,分区处理是将总业务表的数据分成多个业务表的子集,具体地,预设规则可以为根据用户的请求参数插入时间,或者根据用户的请求参数的条数来分割。
通过对数据库中的总业务表进行分区处理,能够实现在分区后的业务表上进行用户的请求参数的更新和插入操作,有效提升数据库的处理数据的效率,提升数据库的性能。
本实施例中,通过根据请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,索引表的预设字段包括业务表名;将每个预设字段对应的字段值插入索引表,在数据库未报错时,判定未出现幂等状态,并将请求参数插入数据库中与业务表名对应的业务表中,能够有效提升幂等状态的识别效率,提升幂等识别过程中的数据库性能。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种数据库中幂等状态的识别方法,其特征在于,包括以下步骤:
获取用户的请求参数;
根据所述请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,所述索引表的预设字段包括业务表名;
将所述每个预设字段对应的字段值插入所述索引表,并判断数据库是否报错;
如果判断所述数据库未报错,则判定未出现幂等状态,并将所述请求参数插入所述数据库中与所述业务表名对应的业务表中;
其中,在获取用户的请求参数之前,还包括:在所述数据库中建立所述索引表。
2.如权利要求1所述的数据库中幂等状态的识别方法,其特征在于,还包括:
如果判断所述数据库报错,则判定出现所述幂等状态,并将所述请求参数丢弃。
3.如权利要求1所述的数据库中幂等状态的识别方法,其特征在于,其中,所述索引表的预设字段还包括ID、唯一键、唯一索引的名称和插入日期中的一个或多个。
4.如权利要求3所述的数据库中幂等状态的识别方法,其特征在于,当预设字段包括所述插入日期时,所述方法还包括:
根据所述索引表的预设字段中所述插入日期对应的字段值与当前日期生成时间差值;
判断所述时间差值是否大于预设时间差阈值;
当所述时间差值大于所述预设时间差阈值时,删除所述插入日期对应的字段值所在行中每个预设字段的字段值。
5.如权利要求3所述的数据库中幂等状态的识别方法,其特征在于,当预设字段包括所述唯一键时,所述根据所述请求参数生成与索引表的预设字段中每个预设字段对应的字段值,具体包括:
根据数据加密处理算法对所述业务表中的一个或者多个唯一索引对应的字段值进行数据加密处理,以获得所述索引表的预设字段中唯一键对应的字段值。
6.如权利要求1所述的数据库中幂等状态的识别方法,其特征在于,在所述获取用户的请求参数之前,还包括:
根据预设规则对所述数据库中的总业务表进行分区处理,以得到分区后的预设个数的所述业务表。
7.一种数据库中幂等状态的识别装置,其特征在于,包括:
获取模块,用于获取用户的请求参数;
生成模块,用于根据所述请求参数生成与索引表的预设字段中每个预设字段对应的字段值,其中,所述索引表的预设字段包括业务表名;
判断模块,用于将所述每个预设字段对应的字段值插入所述索引表,并判断数据库是否报错;
插入模块,用于在判断所述数据库未报错时,判定未出现幂等状态,并将所述请求参数插入所述数据库中与所述业务表名对应的业务表中;
建立模块,用于在所述数据库中建立所述索引表。
8.如权利要求7所述的数据库中幂等状态的识别装置,其特征在于,还包括:
丢弃模块,用于在判断所述数据库报错时,判定出现所述幂等状态,并将所述请求参数丢弃。
9.如权利要求7所述的数据库中幂等状态的识别装置,其特征在于,其中,所述索引表的预设字段还包括ID、唯一键、唯一索引的名称和插入日期中的一个或多个。
10.如权利要求9所述的数据库中幂等状态的识别装置,其特征在于,当预设字段包括所述插入日期时,所述装置还包括:
时间差值生成模块,用于根据所述索引表的预设字段中所述插入日期对应的字段值与当前日期生成时间差值;
时间差值判断模块,用于判断所述时间差值是否大于预设时间差阈值;
删除模块,用于在所述时间差值大于所述预设时间差阈值时,删除所述插入日期对应的字段值所在行中每个预设字段的字段值。
11.如权利要求9所述的数据库中幂等状态的识别装置,其特征在于,当预设字段包括所述唯一键时,所述生成模块具体用于:
根据数据加密处理算法对所述业务表中的一个或者多个唯一索引对应的字段值进行数据加密处理,以获得所述索引表的预设字段中唯一键对应的字段值。
12.如权利要求7所述的数据库中幂等状态的识别装置,其特征在于,还包括:
分区模块,用于根据预设规则对所述数据库中的总业务表进行分区处理,以得到分区后的预设个数的所述业务表。
CN201610137876.XA 2016-03-10 2016-03-10 数据库中幂等状态的识别方法和装置 Active CN107180048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610137876.XA CN107180048B (zh) 2016-03-10 2016-03-10 数据库中幂等状态的识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610137876.XA CN107180048B (zh) 2016-03-10 2016-03-10 数据库中幂等状态的识别方法和装置

Publications (2)

Publication Number Publication Date
CN107180048A CN107180048A (zh) 2017-09-19
CN107180048B true CN107180048B (zh) 2021-03-19

Family

ID=59829974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610137876.XA Active CN107180048B (zh) 2016-03-10 2016-03-10 数据库中幂等状态的识别方法和装置

Country Status (1)

Country Link
CN (1) CN107180048B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059135B (zh) * 2019-04-12 2024-05-17 创新先进技术有限公司 一种数据同步方法和装置
CN110740163B (zh) * 2019-09-04 2021-04-02 华云数据控股集团有限公司 幂等性控制方法、装置、电子设备及可读存储介质
CN115168341A (zh) * 2022-06-17 2022-10-11 北京结慧科技有限公司 一种业务处理方法、系统、介质及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125360A (en) * 1998-07-02 2000-09-26 Oracle Corporation Incremental maintenance of materialized views containing one-to-N lossless joins
CN105205175A (zh) * 2015-10-15 2015-12-30 北京农信互联科技有限公司 分布式数据库集群的数据操作方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100550019C (zh) * 2007-03-22 2009-10-14 金蝶软件(中国)有限公司 面向对象的数据库访问方法及系统
CN101546395A (zh) * 2008-03-24 2009-09-30 国际商业机器公司 业务过程模型产生方法、设备和状态字段识别方法
CN104537129B (zh) * 2015-01-30 2017-11-07 中国地质大学(武汉) 一种基于Web的数据库虚拟存储处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125360A (en) * 1998-07-02 2000-09-26 Oracle Corporation Incremental maintenance of materialized views containing one-to-N lossless joins
CN105205175A (zh) * 2015-10-15 2015-12-30 北京农信互联科技有限公司 分布式数据库集群的数据操作方法及系统

Also Published As

Publication number Publication date
CN107180048A (zh) 2017-09-19

Similar Documents

Publication Publication Date Title
CN110300984B (zh) 改变在区块链中记录的智能合约
CN108848055B (zh) 一种区块链共识方法、记账节点及节点
CN109831487B (zh) 分片文件验证方法及终端设备
CN108234134A (zh) 区块同步方法及系统
CN105101196A (zh) 一种用户账户管理方法及装置
CN110022315B (zh) 一种块链式账本中的权重管理方法、装置及设备
CN107180048B (zh) 数据库中幂等状态的识别方法和装置
CN105337925A (zh) 一种用户账户管理方法及装置
CN108769264A (zh) 一种区块链分域方法
CN111431802B (zh) 区块链节点通信优化系统及方法
CN111338869B (zh) 配置参数管理方法、装置、设备及存储介质
CN110175833B (zh) 一种绑定银行卡信息的计算机装置、方法、系统及介质
CN110162274B (zh) 一种基于区块链的数据处理方法、装置及设备
CN105187399A (zh) 资源处理方法及装置
CN111125240B (zh) 一种分布式事务实现方法、装置、电子设备及存储介质
CN111190915A (zh) 一种道具标识或角色标识的确定方法、服务器及存储介质
KR20210106013A (ko) 데이터 기록의 부정확한 카피의 분산 원장 시스템으로의 전송 방지
CN113010443B (zh) 基于金融核心交易场景的数据库测试数据生成方法及装置
CN104348905A (zh) 一种离线推送消息的方法及装置
CN109741073B (zh) 区块链的审查攻击处理方法、系统及电子设备和存储介质
CN111338607A (zh) 一种用于测试的业务数据的选择方法、装置及电子设备
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
CN114138786A (zh) 一种联机交易消息去重方法、装置、介质、产品和设备
CN113553480A (zh) 单据审核方法、单据审核装置和可读存储介质
CN108763363B (zh) 一种检验待写入记录的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201013

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220414

Address after: Room 602, No. 618 Wai Road, Huangpu District, Shanghai

Patentee after: Ant fortune (Shanghai) Financial Information Service Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.