CN116186051A - 一种数据更新方法、装置、设备及存储介质 - Google Patents
一种数据更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116186051A CN116186051A CN202211611414.9A CN202211611414A CN116186051A CN 116186051 A CN116186051 A CN 116186051A CN 202211611414 A CN202211611414 A CN 202211611414A CN 116186051 A CN116186051 A CN 116186051A
- Authority
- CN
- China
- Prior art keywords
- updated
- data
- update
- statement
- inter
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种数据更新方法、装置、设备及存储介质,所述方法,包括:获取至少两条用于表间更新的待更新语句;根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;将至少两条目标更新语句,合成目标更新语句块;将目标更新语句块发送至待更新数据库进行数据更新。本申请实施例将至少两条待更新语句合成一个目标更新语句块,一次性发送给待更新数据库进行数据更新,减少了对数据库的访问次数,进而减少了网络传输时间。
Description
技术领域
本申请实施例涉及数据库技术领域,尤其涉及一种数据更新方法、装置、设备及存储介质。
背景技术
现实应用中,数据库中的大部分数据都会发生某种程度的改动。通常,使用update(更新)语句实现数据库中数据的更新。面对数据库中批量数据的更新,则使用批量的update更新方法。
然而,数据库中传统的批量update更新方法,每次update更新操作都需要和数据库建立链接,增加了网络传输时间,影响数据库的性能。
发明内容
本申请提供了一种数据更新方法、装置、设备及存储介质,以减少对数据库的访问次数,进而减少网络传输时间。
第一方面,本申请实施例提供了一种数据更新方法,包括:
获取至少两条用于表间更新的待更新语句;
根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;
将至少两条目标更新语句,合成目标更新语句块;
将目标更新语句块发送至待更新数据库进行数据更新。
第二方面,本申请实施例还提供了一种数据更新装置,包括:
待更新语句获取模块,用于获取至少两条用于表间更新的待更新语句;
目标更新语句生成模块,用于根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;
语句块合成模块,用于将至少两条目标更新语句,合成目标更新语句块;
数据更新模块,用于将目标更新语句块送至待更新数据库进行数据更新。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本申请任一实施例的数据更新方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本申请任一实施例的数据更新方法。
本申请通过获取至少两条用于表间更新的待更新语句;根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;将至少两条目标更新语句,合成目标更新语句块;将目标更新语句块发送至待更新数据库进行数据更新。上述技术方案,将至少两条待更新语句合成一个目标更新语句块,一次性发送给待更新数据库进行数据更新,减少了对数据库的访问次数,进而减少了网络传输时间。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种数据更新方法的流程图;
图2是本申请实施例二提供的一种数据更新方法的流程图;
图3是本申请实施例三提供的一种数据更新装置的结构示意图;
图4是实现本申请实施例的数据更新方法的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的一种数据更新方法的流程图,本实施例可适用于分布式数据库批量update(更新)语句执行的情况,该方法可以由数据更新装置来执行,该装置可以采用硬件和/或软件的形式实现,可配置于分布式数据库系统中。如图1所示,该方法包括:
S101、获取至少两条用于表间更新的待更新语句。
其中,表间更新可以是指基于其他数据表进行本数据表的数据更新。待更新语句可以是指待更新数据库中未经处理的更新语句(即update语句),比如,“update t2 joint1 on t2.id1=t1.id1 set t2.id2=t1.id2 where id3='a';”。其中,待更新数据库可以是指需要进行数据更新的数据库,例如可以是分布式数据库。其中,t1和t2分别为数据表,数据表t1作为数据更新的参照表,数据表t2作为数据更新的待更新表。在数据表t1和数据表t2中分别设置有id1-id4四个字段,两个数据表中均以id2作为主键。为了便于描述,可以将“t2.id1=t1.id1”称为数据表t1和t2之间的主查询条件,将“t2.id2=t1.id2”称为赋值语句;将“id3='a'”称为数据表t1的辅查询条件。上述更新语句用于将满足主查询条件和辅查询条件的数据表t1中的行数据中的id2对应字段值,赋值给数据表t2中的id2字段。也即,确定数据表t1中的id1与数据表t2的id1对应字段值相同,且数据表t1的id3对应字段值为a的行数据,并将该行数据中的id2的值,赋值给数据表t2的id2字段。
进一步的,待更新语句对应的数据表位于待更新数据库的相同数据分片。其中,数据分片用于存储数据表中的数据,可以通过对待更新数据库进行分库得到。其中,分库是指对待更新数据库按照一定的分发规则进行拆分,并将拆分结果添加至不同数据分片中。待更新数据库可以包括至少两个数据分片。其中,分发规则可以是duplicate(复制)分发、hash(哈希)分发、range(区间)分发、或list(列匹配)分发等。需要说明的是,分发规则可以由技术人员在进行数据表创建时预先进行设定。
上述操作,保证了待更新语句对应的数据表位于待更新数据库的相同数据分片,减少了不同数据分片之间的访问次数,从而减少了网络传输时间。
S102、根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句。
其中,表间查询条件可以是指对至少两个数据表的字段加以描述得到的查询条件;表内更新可以是指不依赖其他数据表的字段描述进行本数据表的数据更新。赋值子句用于表示待更新语句中,对待更新表中的待更新字段进行赋值的语句。
举例说明,若待更新数据库执行了两条插入语句,如下:
insert into t1values('1','2','a','1');
insert into t2values('1','1','1','1');
也即,数据表t1中的字段id1的字段值为1、字段id2的字段值为2、字段id3的字段值为a和字段id4的字段值为1;相应的,数据表t2中的字段id1的字段值为1、字段id2的字段值为1、字段id3的字段值为1和字段id4的字段值为1。
若待更新语句为“update t2join t1on t2.id1=t1.id1 set t2.id2=t1.id2where id3='a'”,则表间查询条件为“t2.id1=t1.id1”和“id3='a'”,表示查询数据表t1和数据表t2中,t2中字段id1的字段值等于t1中字段id1的字段值,且t1中字段id3的字段值为a的数据;赋值子句为“t2.id2=t1.id2”,表示将t1中字段id2的字段值2赋值给t2中的字段id2;其中,t2为待更新表,t1为参照表。根据待更新语句中的表间查询条件和赋值子句,生成对应用于对待更新表t2进行表内更新的目标更新语句:“UPDATE test.t2SETt2.GTID=4296682,`id2`='2'WHERE`id2`='1'”。该目标更新语句表示将t2中字段id2的字段值由1更新为2。其中,GTID(Global Transaction ID,全局事务标识符),用来强化数据库的主备一致性,故障恢复,以及容错能力。可以根据GTID,确定事务最初由哪个实例提交。
S103、将至少两条目标更新语句,合成目标更新语句块。
其中,将各目标更新语句顺序组合,生成目标更新语句块。具体的,可以将同一数据分片上,针对同一个数据表的至少两条目标更新语句,按照目标更新语句的生成时间升序排列,并将这些目标更新语句按照该排列顺序合成一个目标更新语句块。
S104、将目标更新语句块发送至待更新数据库进行数据更新。
具体的,将目标更新语句块一次性发送给待更新数据库;待更新数据库按照目标更新语句块中目标更新语句的排列顺序,依次顺序执行每一条目标更新语句,以完成对待更新数据库中数据的更新;执行完目标更新语句块后,待更新数据库再一次性汇总返回,减少了数据库的访问次数。
本申请通过获取至少两条用于表间更新的待更新语句;根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;将至少两条目标更新语句,合成目标更新语句块;将目标更新语句块发送至待更新数据库进行数据更新。上述技术方案,将至少两条待更新语句合成一个目标更新语句块,一次性发送给待更新数据库进行数据更新,减少了对数据库的访问次数,进而减少了网络传输时间。
实施例二
图2为本申请实施例二提供的一种数据更新方法的流程图,本实施例在上述实施例的基础上,将“根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句”进一步细化为“根据待更新语句中的表间查询条件和赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据;其中,更新关联数据包括参照表内的更新参照数据和待更新表内的待更新数据;根据更新关联数据、赋值子句和表间查询条件,生成对应用于表内更新的目标更新语句”,从而提供了一种具体的目标更新语句的生成方法。需要说明的是,在本申请实施例中未详述部分,可参照其他实施例的相关表述。
如图2所示的数据更新方法,具体包括:
S201、获取至少两条用于表间更新的待更新语句。
S202、根据待更新语句中的表间更新条件和赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据;其中,更新关联数据包括参照表内的更新参照数据和待更新表内的待更新数据。
其中,更新关联数据可以是指待更新语句中表间查询条件所涉及的数据。参照表可以是指对待更新表进行数据更新时作为参照的数据表。更新参照数据可以是指参照表中用于更新待更新数据表的数据。待更新数据可以是指待更新表中需要进行更新的数据。
具体的,若待更新语句为“update t2join t1on t2.id1=t1.id1 set t2.id2=t1.id2 where id3='a'”,则表间查询条件为“t2.id1=t1.id1”和“id3='a'”,赋值子句为“t2.id2=t1.id2”;其中,数据表t1为参照表,数据表t2为待更新表,则参照表t1内的更新参照数据包括“t1.id1”、“t1.id2”和“id3='a'”,待更新表t2内的待更新数据为“t2.id2”。根据待更新语句中的表间查询条件和赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据包括“t1.id1”、“t1.id2”、“id3='a'”、“t2.id1”和“t2.id2”。
可选的,根据待更新语句中的赋值子句和表间查询条件中的主查询条件,确定待更新语句中的待锁定字段;将参照表和待更新表中,存在待锁定字段,且满足表间查询条件中的主查询条件和辅查询条件的数据作为更新关联数据;锁定更新关联数据中待锁定字段对应字段值。
其中,主查询条件可以是指表间查询条件中主要的查询条件,相应的,辅查询条件可以是指表间查询条件中次要的查询条件,用于辅助主查询条件查询数据。待锁定字段可以是指待更新语句中需要进行加锁的字段,避免进行数据更新前,进行相应字段值的写操作。
在上述示例的基础上,待更新语句“update t2join t1on t2.id1=t1.id1sett2.id2=t1.id2 where id3='a'”中表间查询条件中的主查询条件为“t2.id1=t1.id1”,辅查询条件为“id3='a'”,赋值子句为“t2.id2=t1.id2”。若t1和t2中分别包括字段id1、id2、id3和id4,根据待更新语句中的赋值子句和表间查询条件中的主查询条件,确定待更新语句中的待锁定字段包括“id1”和“id2”;将参照表t1和待更新表t2中,存在待锁定字段,且满足表间查询条件中的主查询条件“t2.id1=t1.id1”和辅查询条件“id3='a'”的数据作为更新关联数据,则该更新关联数据包括“t1.id1”、“t1.id2”、“t1.id3”、“t2.id2”和“t2.id1”等各字段,以及对应的字段值,并锁定更新关联数据中待锁定字段“t1.id1”、“t1.id2”、“t2.id1”和“t2.id2”对应的字段值。可以通过如下语句实现对更新关联数据中待锁定字段对应字段值的锁定:
SELECT`t1`.`id2`,`t2`.`id2`,`t2`.`id1`FROM t2join t1on t2.id1=t1.id1WHERE(`id3`='a')FOR UPDATE;
上述操作,提供了对待更新语句中满足相应表间查询条件的更新关联数据的锁定方法,实现了对满足待更新语句中表间查询条件中的主查询条件和辅查询条件的数据的加锁,保证了这些数据的安全,避免了这些数据被改写;同时,可以快速定位到待更新数据库中满足待更新语句中表间查询条件中的主查询条件和辅查询条件的数据,以供后续进行待更新语句的转化调整。
S203、根据更新关联数据、赋值子句和表间查询条件,生成对应用于表内更新的目标更新语句。
具体的,根据更新关联数据对应的字段值、赋值子句中字段对应的字段值以及表间查询条件,生成对应用于待更新表的表内更新的目标更新语句。
可选的,根据更新参照数据,确定赋值子句的赋值结果;根据待更新数据和更新参照数据,将表间查询条件,转化为表内查询条件;根据赋值结果和表内查询条件,生成对应用于表内更新的目标更新语句。
其中,赋值结果可以是指对待更新表的待更新字段需要赋值的具体数值;表内查询条件可以是指只涉及待更新表数据的查询条件。
举例说明,若待更新数据执行了两条插入语句,如下:
insert into t1values('1','2','a','1');
insert into t2values('1','1','1','1');
其中,数据表t1中的字段id1的字段值为1、字段id2的字段值为2、字段id3的字段值为a和字段id4的字段值为1;相应的,数据表t2中的字段id1的字段值为1、字段id2的字段值为1、字段id3的字段值为1和字段id4的字段值为1。若待更新语句为“update t2 join t1on t2.id1=t1.id1set t2.id2=t1.id2 where id3='a';”,则表间查询条件为“t2.id1=t1.id1”和“id3='a'”;赋值子句为“t2.id2=t1.id2”;其中,数据表t1为参照表,数据表t2为待更新表。具体的,根据t1中的更新参照数据t1.id2对应的字段值2,确定赋值子句“t2.id2=t1.id2”的赋值结果为“t2.id2=2”;根据待更新数据t2.id2和更新参照数据:“t1.id1”、“t1.id2”和“id3='a'”,将表间查询条件“t2.id1=t1.id1”和“id3='a'”,转化为表内查询条件,即“`id2`='1'”;根据赋值结果t2.id2=2和表内查询条件“`id2`='1'”,生成对应用于表内更新的目标更新语句,即“UPDATE test.t2 SET t2.GTID=4296682,`id2`='2'WHERE`id2`='1';”。其中,t2.GTID用于在执行SELECT语句时,判断该目标更新语句中的数据是否活跃。如果是,则后续在待更新数据库中仅依次执行活跃的目标更新语句。
上述操作,根据更新参照数据和待更新数据,得到赋值子句的赋值结果和表内查询条件;并根据赋值结果和表内查询条件,生成对应用于表内更新的目标更新语句,提高了目标更新语句的生成结果的准确度,便于后续进行待更新表中的数据更新。
作为本申请实施例的一种可选方式,所述根据待更新数据和更新参照数据,将表间查询条件,转化为表内查询条件,可以是:根据更新参照数据,确定表间查询条件的查询字段值;根据查询字段值和待更新数据的主键,将表间查询条件转化为表内查询条件。
其中,查询字段值可以是指表间查询条件中涉及的字段对应的字段值。主键用于唯一标识一条待更新数据。
具体的,基于上述示例,表间查询条件为“t2.id1=t1.id1”和“id3='a'”,若根据更新参照数据对应的字段值:“t1.id1=1”、“t1.id2=2”和“id3='a'”,确定表间查询条件的查询字段值:“t2.id1=1”;若待更新数据的主键为字段t2.id2,根据查询字段值t2.id1=1和待更新数据的主键t2.id2,将针对t1与t2的表间查询条件转化为只针对t2的表内查询条件,即“`id2`='1'”。
上述操作,提供了一种具体的将表间查询条件转化为表内查询条件转化的方法,从而保证了生成的目标更新语句中表内查询条件转换方式的一致性,从而减少了目标更新语句无法执行或执行结果错误的情况发生,进而提高了目标更新语句的执行结果的准确度。
在一个可选实施例中,若所述待更新数据不存在显式主键,则所述根据待更新数据和更新参照数据,将表间查询条件,转化为表内查询条件,可以是:根据不同待更新数据在相同字段下的字段值,确定满足索引条件的字段作为隐式主键;根据查询字段值和待更新数据的隐式主键,将表间查询条件转化为所述表内查询条件。
其中,显式主键可以是指待更新数据中预先设置的主键,用于唯一表示一条待更新表的待更新数据和该条待更新数据在参照表中相应的更新参照数据。相应的,隐式主键可以是指待更新数据中没有预先设置的主键的情况下,选取的非空且可以充当索引,唯一表示一条待更新表的待更新数据和该条待更新数据在参照表中相应的更新参照数据的字段。
具体的,若有待更新数据A和待更新数据B,且二者都涉及参照表t1和待更新表t2;其中,t1和t2中字段和字段对应的字段值可以参照其他实施例的相关表述;可以根据t2中的不同待更新数据在相同字段下的字段值,确定满足索引条件的字段作为隐式主键;根据t1中的更新参照数据,确定表间查询条件的查询字段值;根据查询字段值和待更新数据的隐式主键,将表间查询条件转化为表内查询条件。
上述操作,在待更新数据不存在显式主键的情况下,完善了将表间查询条件转化为表内查询条件的方法,增强了该数据更新方法的灵活性,扩大了该数据更新方法的适用范围,使得该数据更新方法可以满足更多业务场景的需求。
S204、将至少两条目标更新语句,合成目标更新语句块。
S205、将目标更新语句块发送至待更新数据库进行数据更新。
本申请实施例的技术方案,根据待更新语句中的表间查询条件和赋值子句,锁定相应待更新语句中满足相应表间更新条件的更新关联数据;根据更新关联数据、赋值子句和表间查询条件,生成对应用于表内更新的目标更新语句。上述技术方案,通过锁定相应待更新语句中满足相应表间更新条件的更新关联数据,保证了更新关联数据的安全性,避免了更新关联数据被改写;同时,提供了目标更新语句的生成方法,使得目标更新语句按照一定的规则生成,保证了所有目标更新语句格式的统一,便于后续待更新数据库执行目标更新语句。
实施例三
图3为本申请实施例三提供的一种数据更新装置的结构示意图。本实施例可适用于分布式数据库批量update(更新)语句执行的情况,该装置可以采用硬件和/或软件的形式实现,可配置于分布式数据库系统中。如图3所示,该装置包括:
待更新语句获取模块301,用于获取至少两条用于表间更新的待更新语句;
目标更新语句生成模块302,用于根据待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;
语句块合成模块303,用于将至少两条目标更新语句,合成目标更新语句块;
数据更新模块304,用于将目标更新语句块发送至待更新数据库进行数据更新。
本申请通过待更新语句获取模块获取待更新语句;通过目标更新语句生成模块生成对应用于表内更新的目标更新语句;通过语句块合成模块,将至少两条目标更新语句,合成目标更新语句块;通过数据更新模块,将目标更新语句块发送至待更新数据库进行数据更新。上述技术方案,将至少两条待更新语句合成一个目标更新语句块,一次性发送给待更新数据库进行数据更新,减少了对数据库的访问次数,进而减少了网络传输时间。
可选的,所述目标更新语句生成模块302,包括:
关联数据锁定单元,用于根据待更新语句中的表间查询条件和赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据;其中,更新关联数据包括参照表内的更新参照数据和待更新表内的待更新数据;
更新语句生成单元,用于根据更新关联数据、赋值子句和表间查询条件,生成对应用于表内更新的目标更新语句。
可选的,所述更新语句生成单元,包括:
赋值结果确定子单元,用于根据更新参照数据,确定赋值子句的赋值结果;
查询条件转化子单元,用于根据待更新数据和更新参照数据,将表间查询条件,转化为表内查询条件;
更新语句生成子单元,用于根据赋值结果和表内查询条件,生成对应用于表内更新的目标更新语句。
可选的,所述查询条件转化子单元,具体用于:
根据更新参照数据,确定表间查询条件的查询字段值;根据查询字段值和待更新数据的主键,将表间查询条件转化为表内查询条件。
可选的,若所述待更新数据不存在显式主键,所述装置,还包括:
隐式主键确定模块,用于根据不同待更新数据在相同字段下的字段值,确定满足索引条件的字段作为隐式主键;
表内查询条件转化模块,用于根据查询字段值和待更新数据的隐式主键,将表间查询条件转化为表内查询条件。
可选的,所述关联数据锁定单元,具体用于:
根据待更新语句中的赋值子句和表间查询条件中的主查询条件,确定待更新语句中的待锁定字段;将参照表和待更新表中,存在待锁定字段,且满足表间查询条件中的主查询条件和辅查询条件的数据作为更新关联数据;锁定更新关联数据中待锁定字段对应字段值。
可选的,所述待更新语句对应的数据表位于待更新数据库的相同数据分片。
本申请实施例所提供的数据更新装置可执行本申请任意实施例所提供的数据更新方法,具备执行各数据更新方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本申请的实施例的电子设备400的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,电子设备400包括至少一个处理器401,以及与至少一个处理器401通信连接的存储器,如只读存储器(ROM)402、随机访问存储器(RAM)403等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器401可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM403中,还可存储电子设备400操作所需的各种程序和数据。处理器401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
电子设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器401可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器401执行上文所描述的各个方法和处理,例如数据更新方法。
在一些实施例中,数据更新方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM402和/或通信单元409而被载入和/或安装到电子设备400上。当计算机程序加载到RAM403并由处理器401执行时,可以执行上文描述的数据更新方法的一个或多个步骤。备选地,在其他实施例中,处理器401可以通过其他任何适当的方式(例如,借助于固件)而被配置为数据更新方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种数据更新方法,其特征在于,包括:
获取至少两条用于表间更新的待更新语句;
根据所述待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;
将至少两条所述目标更新语句,合成目标更新语句块;
将所述目标更新语句块发送至待更新数据库进行数据更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句,包括:
根据所述待更新语句中的表间查询条件和所述赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据;其中,所述更新关联数据包括参照表内的更新参照数据和待更新表内的待更新数据;
根据所述更新关联数据、所述赋值子句和所述表间查询条件,生成对应用于表内更新的目标更新语句。
3.根据权利要求2所述的方法,其特征在于,所述根据所述更新关联数据、所述赋值子句和所述表间查询条件,生成对应用于表内更新的目标更新语句,包括:
根据所述更新参照数据,确定所述赋值子句的赋值结果;
根据所述待更新数据和所述更新参照数据,将所述表间查询条件,转化为表内查询条件;
根据所述赋值结果和所述表内查询条件,生成对应用于表内更新的目标更新语句。
4.根据权利要求3所述的方法,其特征在于,所述根据所述待更新数据和所述更新参照数据,将所述表间查询条件,转化为表内查询条件,包括:
根据所述更新参照数据,确定所述表间查询条件的查询字段值;
根据所述查询字段值和所述待更新数据的主键,将所述表间查询条件转化为所述表内查询条件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述查询字段值和所述待更新数据的主键,将所述表间查询条件转化为所述表内查询条件,包括:
若所述待更新数据不存在显式主键,则所述方法还包括:
根据不同待更新数据在相同字段下的字段值,确定满足索引条件的字段作为隐式主键;
根据所述查询字段值和所述待更新数据的隐式主键,将所述表间查询条件转化为所述表内查询条件。
6.根据权利要求2所述的方法,其特征在于,所述根据所述待更新语句中的表间查询条件和所述赋值子句,锁定相应待更新语句中满足相应表间查询条件的更新关联数据,包括:
根据所述待更新语句中的赋值子句和所述表间查询条件中的主查询条件,确定所述待更新语句中的待锁定字段;
将所述参照表和所述待更新表中,存在所述待锁定字段,且满足所述表间查询条件中的主查询条件和辅查询条件的数据作为所述更新关联数据;
锁定所述更新关联数据中所述待锁定字段对应字段值。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述待更新语句对应的数据表位于所述待更新数据库的相同数据分片。
8.一种数据更新装置,其特征在于,包括:
待更新语句获取模块,用于获取至少两条用于表间更新的待更新语句;
目标更新语句生成模块,用于根据所述待更新语句中的表间查询条件和赋值子句,生成对应用于表内更新的目标更新语句;
语句块合成模块,用于将至少两条所述目标更新语句,合成目标更新语句块;
数据更新模块,用于将所述目标更新语句块发送至待更新数据库进行数据更新。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的数据更新方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的数据更新方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211611414.9A CN116186051A (zh) | 2022-12-14 | 2022-12-14 | 一种数据更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211611414.9A CN116186051A (zh) | 2022-12-14 | 2022-12-14 | 一种数据更新方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116186051A true CN116186051A (zh) | 2023-05-30 |
Family
ID=86449783
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211611414.9A Pending CN116186051A (zh) | 2022-12-14 | 2022-12-14 | 一种数据更新方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116186051A (zh) |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106547795A (zh) * | 2015-09-22 | 2017-03-29 | 北京国双科技有限公司 | 数据更新方法和装置 |
| CN109408589A (zh) * | 2018-09-14 | 2019-03-01 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
| CN110888890A (zh) * | 2018-09-07 | 2020-03-17 | 珠海横琴盛达兆业科技投资有限公司 | 一种基于MyBatis批量更新的方法 |
| CN111813803A (zh) * | 2020-07-02 | 2020-10-23 | 上海达梦数据库有限公司 | 语句块执行计划的生成方法、装置、设备和存储介质 |
| CN112540897A (zh) * | 2020-12-08 | 2021-03-23 | 上海达梦数据库有限公司 | 一种数据库监控方法、装置、服务器及介质 |
| CN113254461A (zh) * | 2021-02-07 | 2021-08-13 | 浪潮云信息技术股份公司 | 一种基于nifi的实现数据库同步的优化方法及系统 |
| CN114647659A (zh) * | 2020-12-17 | 2022-06-21 | 金篆信科有限责任公司 | 数据处理方法、装置、电子设备、存储介质 |
-
2022
- 2022-12-14 CN CN202211611414.9A patent/CN116186051A/zh active Pending
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106547795A (zh) * | 2015-09-22 | 2017-03-29 | 北京国双科技有限公司 | 数据更新方法和装置 |
| CN110888890A (zh) * | 2018-09-07 | 2020-03-17 | 珠海横琴盛达兆业科技投资有限公司 | 一种基于MyBatis批量更新的方法 |
| CN109408589A (zh) * | 2018-09-14 | 2019-03-01 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
| CN111813803A (zh) * | 2020-07-02 | 2020-10-23 | 上海达梦数据库有限公司 | 语句块执行计划的生成方法、装置、设备和存储介质 |
| CN112540897A (zh) * | 2020-12-08 | 2021-03-23 | 上海达梦数据库有限公司 | 一种数据库监控方法、装置、服务器及介质 |
| CN114647659A (zh) * | 2020-12-17 | 2022-06-21 | 金篆信科有限责任公司 | 数据处理方法、装置、电子设备、存储介质 |
| CN113254461A (zh) * | 2021-02-07 | 2021-08-13 | 浪潮云信息技术股份公司 | 一种基于nifi的实现数据库同步的优化方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102564543B1 (ko) | 행렬식 텍스트를 저장하는 방법, 장치 및 전자기기 | |
| US20210108931A1 (en) | Method and apparatus for determining hybrid travel route, device and storage medium | |
| US20210311914A1 (en) | Transaction processing method and device, electronic device and readable storage medium | |
| CN112015468B (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
| EP4145298A1 (en) | Method and apparatus for snapshotting metadata | |
| CN111292223B (zh) | 图计算的处理方法、装置、电子设备及存储介质 | |
| WO2021098121A1 (zh) | 共享编码器生成方法、装置及电子设备 | |
| KR20210105315A (ko) | 데이터 주석 방법, 장치, 기기, 저장매체 및 컴퓨터 프로그램 | |
| WO2023142399A1 (zh) | 信息搜索方法、装置、电子设备 | |
| CN114896263A (zh) | 确定目标人群的方法、系统、电子设备及存储介质 | |
| CN111259060B (zh) | 数据查询的方法及装置 | |
| CN116628036A (zh) | 一种执行计划生成方法、装置、设备及存储介质 | |
| CN112817990B (zh) | 数据处理方法、装置、电子设备以及可读存储介质 | |
| CN114942955A (zh) | 一种数据导出方法、装置、导出节点、介质及系统 | |
| CN115328956A (zh) | 基于人工智能的数据查询方法、装置和存储介质 | |
| CN116186051A (zh) | 一种数据更新方法、装置、设备及存储介质 | |
| CN118820272A (zh) | 一种数据库适配方法、装置、设备、介质及产品 | |
| CN113326038A (zh) | 用于提供服务的方法、装置、设备、存储介质及程序产品 | |
| CN118467579A (zh) | 一种数据库结构处理方法、装置、设备及存储介质 | |
| WO2025081874A1 (zh) | 代码生成方法、装置、设备以及存储介质 | |
| CN118433039A (zh) | 模型训练时的节点通信方法、装置 | |
| CN111475572B (zh) | 区块生成方法、装置、设备和介质 | |
| CN117278648A (zh) | 协议动态适配方法、装置、电子设备及存储介质 | |
| CN117270862A (zh) | 基于动态编译的软件可插拔方法、装置、设备和介质 | |
| CN115328917A (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 |