【技术实现步骤摘要】
数据处理方法及装置、存储介质和处理器
本专利技术涉及数据处理
,具体而言,涉及一种数据处理方法及装置、存储介质和处理器。
技术介绍
在供应链或物流场景下,一个正常业务流程通常会包含多个服务的调用,服务中往往会有很多数据更新操作,例如,卖家入库的操作中,需要对部分业务数据进行更新。如果业务执行中出现问题(比如网络超时、宕机等),通常需要调用服务的反向接口去订正已经做过的更新操作。如果订正前,数据已经被别的业务调用更改,很可能会出现数据错误,多数情况下需要人工订正,造成很大业务压力和资源浪费,也影响用户体验。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种数据处理方法及装置、存储介质和处理器,以至少解决业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。根据本专利技术实施例的一个方面,提供了一种数据处理方法,包括:确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行 ...
【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n确定对数据库中的目标行进行更新操作;/n在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;/n根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;/n在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。/n
【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
确定对数据库中的目标行进行更新操作;
在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;
根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;
在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
2.根据权利要求1所述的数据处理方法,其特征在于,在得到主键ID之前,所述方法还包括:
判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;
若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
3.根据权利要求1所述的数据处理方法,其特征在于,对执行所述更新操作的SQL语句进行解析,得到主键ID包括:
判断所述SQL语句中的目标语句中是否已经指定了主键;
若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;
若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;
基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
4.根据权利要求3所述的数据处理方法,其特征在于,若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
5.根据权利要求3所述的数据处理方法,其特征在于,基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
6.根据权利要求1所述的数据处理方法,其特征在于,对合成的键值进行加锁,包括:
将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;
在所述缓存中对所述合成的键值进行加锁。
7.根据权利要求6所述的数据处理方法,其特征在于,在所述缓存中对所述合成的键值进行加锁包括:
若加锁失败,则开始计时;
若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;
若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
8.一种数据处理装置,其特征在于,包括:
确定单元,用于确定对数据库中的目标行进行更新操作;
获取单元,用于在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;
加锁单元,用于根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;
生效单元,用于在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
9.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
判断单元,用于在得到主键ID之前...
【专利技术属性】
技术研发人员:王鑫,张伟,刘建设,姜宇,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。