数据表处理方法、装置、电子设备及存储介质与流程

文档序号:36359086发布日期:2023-12-14 04:33阅读:28来源:国知局
数据表处理方法与流程

本发明实施例涉及数据处理,尤其涉及一种数据表处理方法、装置、电子设备及存储介质。


背景技术:

1、在业务系统设计中,很多数据表用于存储事实数据。这些数据一般会伴随增删改查的基本场景,在删除操作执行时,一般会采用逻辑删除的方式,逻辑删除即将数据标记为已删除状态,但并非在物理磁盘上进行了删除操作,逻辑机制广泛地被各种语言的各类框架所应用,使数据表的操作业务可以尽可能少地重复实现逻辑删除的逻辑。

2、由于这种逻辑删除机制在数据表中增加了存在、被删除状态区分后,导致原先表格的业务逻辑被区分成了两部分,无法简单地使用联合唯一约束,若采用将逻辑删除数据的删除标识由第一值更改为第二值的方式,例如将逻辑删除的数据的删除标识由1改为0,这使得存在的数据实现了联合唯一约束。然而对于已删除的数据来说,当同一个数据被多次删除时,数据表中存在多个已删除的数据,且删除标识均为第二值,这依然存在无法使用联合唯一约束的问题。

3、对此,现有技术中提出通过锁定数据表,由应用层来实现控制唯一约束的方式。然而,应用上述方式,将导致在数据新增或修改时需要增加数据表锁定以及数据表解锁等步骤,进而影响数据读取、修改性能。


技术实现思路

1、鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种数据表处理方法、装置、电子设备及存储介质。

2、第一方面,本发明实施例提供一种数据表处理方法,所述方法包括:

3、接收数据行删除请求,从数据表中确定待删除的目标数据行;

4、确定当前时间戳;

5、将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳,其中,所述逻辑删除字段为所述数据表的联合唯一约束字段之一,当所述逻辑删除字段的值为所述第一值时,表征数据行存活,当所述逻辑删除字段的值为时间戳时,表征数据行已被逻辑删除;数据库通过所述数据表的联合唯一约束字段确定所述数据表中数据行的唯一性。

6、在一个可能的实施方式中,在所述将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳之前,还包括:

7、确定所述数据表中是否存在满足第一设定条件的数据行,所述第一设定条件为:数据行的逻辑删除字段中的值为所述当前时间戳,且数据行的第一字段中的值与所述目标数据行的第一字段的值一致,所述第一字段为所述数据表的联合唯一约束字段中除所述逻辑删除字段以外的其他字段;

8、若不存在,则执行所述将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳的步骤。

9、在一个可能的实施方式中,所述方法还包括:

10、若确定所述数据表中存在满足第一设定条件的数据行,则返回执行所述确定当前时间戳,将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳的步骤。

11、在一个可能的实施方式中,所述方法还包括:

12、接收数据行的处理请求,所述数据行处理请求携带待处理的数据行;

13、确定所述数据表中是否存在满足第二设定条件的数据行,所述第二设定条件为:数据行的逻辑删除字段中的值为所述第一值,且数据行的第一字段中的值与所述待处理数据行的第一字段的值一致,所述第一字段为所述数据表的唯一约束字段中除所述逻辑删除字段以外的其他字段;

14、若不存在,则对所述待处理数据行进行处理。

15、在一个可能的实施方式中,所述方法还包括:

16、若所述数据表中存在满足所述第二设定条件的数据行,则输出用于指示违反唯一约束的指示信息。

17、第二方面、本发明实施例提供一种数据表处理装置,所述装置包括:

18、接收模块,用于接收数据行删除请求,从数据表中确定待删除的目标数据行;

19、确定模块,用于确定当前时间戳;

20、修改模块,用于将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳,其中,所述逻辑删除字段为所述数据表的联合唯一约束字段之一,当所述逻辑删除字段的值为所述第一值时,表征数据行存活,当所述逻辑删除字段的值为时间戳时,表征数据行已被逻辑删除;数据库通过所述数据表的联合唯一约束字段确定所述数据表中数据行的唯一性。

21、在一个可能的实施方式中,所述装置还包括:

22、判断模块,用于在所述将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳之前,确定所述数据表中是否存在满足第一设定条件的数据行,所述第一设定条件为:数据行的逻辑删除字段中的值为所述当前时间戳,且数据行的第一字段中的值与所述目标数据行的第一字段的值一致,所述第一字段为所述数据表的联合唯一约束字段中除所述逻辑删除字段以外的其他字段;

23、执行模块,用于若确定所述数据表中不存在满足第一设定条件的数据行,则执行所述将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳的步骤。

24、在一个可能的实施方式中,所述装置还包括:

25、返回模块,用于若确定所述数据表中存在满足第一设定条件的数据行,则返回执行所述确定当前时间戳,将所述目标数据行的逻辑删除字段中的值由第一值修改为所述当前时间戳的步骤。

26、在一个可能的实施方式中,所述装置还包括:

27、处理请求模块,用于接收数据行的处理请求,所述数据行处理请求携带待处理的数据行;

28、条件确定模块,用于确定所述数据表中是否存在满足第二设定条件的数据行,所述第二设定条件为:数据行的逻辑删除字段中的值为所述第一值,且数据行的第一字段中的值与所述待处理数据行的第一字段的值一致,所述第一字段为所述数据表的唯一约束字段中除所述逻辑删除字段以外的其他字段;

29、处理模块,用于若所述数据表中不存在满足第二设定条件的数据行,则对所述待处理数据行进行处理。

30、在一个可能的实施方式中,所述装置还包括:

31、信息输出模块,用于若所述数据表中存在满足所述第二设定条件的数据行,则输出用于指示违反唯一约束的指示信息。

32、第三方面、本发明实施例提供一种电子设备,包括:至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面中任一项所述的数据表处理方法。

33、第四方面、本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以执行第一方面中任一项所述的数据表处理方法。

34、本发明提供的技术方案,通过接收数据行的删除请求,从数据表中确定待删除的目标数据行;之后,确定当前时间戳,并将上述目标数据行的逻辑删除字段中的值由第一值修改为当前时间戳,其中,逻辑删除字段为数据表的联合唯一约束字段之一,当逻辑删除字段的值为第一值时,表征数据行存活,当逻辑删除字段的值为时间戳时,表征数据行已被逻辑删除;数据库通过数据表的联合唯一约束字段确定数据表中数据行的唯一性。由于在删除数据行时,将数据行的逻辑删除字段由第一值修改为当前时间戳,以表征目标数据行已被逻辑删除,实现了既可逻辑删除,又不违反联合唯一约束,同时,这相较于现有技术而言,无需为实现唯一约束而对数据表进行锁定,从而无需增加数据表锁定以及数据表解锁等步骤,避免影响数据读取、修改性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1