[发明专利]数据表处理方法及系统有效
申请号: | 201110276277.3 | 申请日: | 2011-09-16 |
公开(公告)号: | CN102999525A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 陈伟君 | 申请(专利权)人: | 深圳市金蝶中间件有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据表 处理 方法 系统 | ||
【技术领域】
本发明涉及数据表处理领域,特别涉及一种数据表处理方法及系统。
【背景技术】
在数据库中,序列生成器可以为数据表中的行自动生成序列号,产生一组等间隔的数值,主要用于生成数据表的主键值。其中,主键又称主关键字(primary key),是指表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录。
在数据库的应用中,需要为数据表中的每条记录生成ID(Identity,序列号),将该ID作为主键。传统的方法是使用某种算法生成字符串,使得每次生成的字符串是不同的,如利用机器时间加MAC(Media Access Control,硬件地址)地址加随机因子按照某种策略生成的字符串,但字符串长度通常至少为32个字符,对空间要求比数字ID(Identity,序列号)要高,导致索引查询速度比数字ID要慢,且当多个用户对同一数据表进行操作时,可能会导致出现序列号冲突;传统的方法也有使用数据库系统的主键自增功能的,如SqlServer的Identity,MySql的Auto_Increment等,该数据模型的ID是数字值,但序列生成器无法与具体的数据库系统解耦,即针对每个数据库系统需要相应的一个序列生成器实现,且当多个用户对同一数据包进行操作时,可能会导致出现序列号冲突。
【发明内容】
基于此,有必要提供一种能防止序列号冲突的数据表处理方法。
一种数据表处理方法,包括以下步骤:
创建序列表,所述序列表包括数据表的名称字段、序列当前最大值字段和主键字段;
获取用户对数据表的操作请求,根据所述操作请求获取用户操作的数据表的名称;
在所述序列表中查找所述用户操作的数据表的名称,将所述序列表中的包含所述数据表的名称的记录进行锁定;
获取所述序列表中锁定的记录中的序列当前最大值,并将所述序列当前最大值增加预定值,更新所述序列当前最大值;
根据所述更新后的序列当前最大值更新所述用户操作的数据表。
优选地,在所述序列表中查找所述用户操作的数据表的名称,将所述序列表中的包含所述数据表的名称的记录进行锁定的步骤具体为:
在所述序列表中查找所述用户操作的数据表的名称,在所述序列表中未查找到时,将所述序列表进行锁定,在所述序列表中创建包含所述用户操作的数据表的名称的记录,初始化所述记录中的序列当前最大值,然后将所述序列表中的包含所述数据表的名称的记录进行锁定。
优选地,在获取所述序列表中锁定的记录中的序列当前最大值,并将所述序列当前最大值增加预定值,更新所述序列当前最大值的步骤之后还包括步骤:
形成包含预定值个序列号的序列区间块;
根据所述更新后的序列当前最大值更新所述用户操作的数据表的步骤为:根据所述序列区间块更新所述用户操作的数据表。
优选地,所述获取用户对所述数据表的操作请求的步骤之后,还包括:
判断所述序列区间块中序列号是否用完,若是,则获取新的序列区间块,若否,则直接从所述序列区间块中获取序列号,根据获取的序列号更新所述用户操作的数据表,其中,所述序列号小于所述序列当前最大值。
优选地,所述序列区间块中记录了起始序列号、最大序列号和当前序列号。
此外,还有必要提供一种能防止序列号冲突的数据表处理系统。
一种数据表处理系统,包括:
创建模块,用于创建序列表,所述序列表包括数据表的名称字段、序列当前最大值字段和主键字段;
获取模块,用于获取用户对数据表的操作请求,根据所述操作请求获取用户操作的数据表的名称;
查找模块,用于在所述序列表中查找所述用户操作的数据表的名称;
处理模块,用于将所述序列表中的包含所述数据表的名称的记录进行锁定,获取所述序列表中锁定的记录中的序列当前最大值,并将所述序列当前最大值增加预定值,更新所述序列当前最大值;
更新模块,用于根据所述更新后的序列当前最大值更新所述用户操作的数据表。
优选地,在所述查找模块在所述序列表中未查找到所述用户操作的数据表的名称时,所述处理模块还用于对将所述序列表进行锁定,在所述序列表中创建包含所述用户操作的数据表的名称的记录,初始化所述记录的序列当前最大值,然后将所述序列表中的包含所述数据表的名称的记录进行锁定。
优选地,所述处理模块还用于形成包含预定值个序列号的序列区间块;所述更新模块还用于根据所述序列区间块更新所述用户操作的数据表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市金蝶中间件有限公司,未经深圳市金蝶中间件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110276277.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现网络爬虫任务的方法
- 下一篇:一种微小型飞轮控制电路