CN104462206A - 一种通用的数据库序列生成方法 - Google Patents

一种通用的数据库序列生成方法 Download PDF

Info

Publication number
CN104462206A
CN104462206A CN201410610011.1A CN201410610011A CN104462206A CN 104462206 A CN104462206 A CN 104462206A CN 201410610011 A CN201410610011 A CN 201410610011A CN 104462206 A CN104462206 A CN 104462206A
Authority
CN
China
Prior art keywords
sequence
value
storing process
name
current
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
Application number
CN201410610011.1A
Other languages
English (en)
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.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology 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 G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201410610011.1A priority Critical patent/CN104462206A/zh
Publication of CN104462206A publication Critical patent/CN104462206A/zh
Pending legal-status Critical Current

Links

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/2291User-Defined Types; Storage 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

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

Abstract

本发明涉及软件开发技术领域,具体涉及一种通用的数据库序列生成方法。本发明通过SQL语句创建一个数据库表和三个存储过程:数据库表记录序列名称、阶值(即两个相邻序列间隔的值)、序列当前值,第一个存储过程通过序列名称获取当前序列值,第二个存储过程通过序列名称生成新的序列值,第三个存储过程用来设置该名称的序列的值,从而实现数据库序列的生成方法。本发明解决了应用系统软件移植困难的问题;可以用于改善应用系统软件的可移植性。

Description

一种通用的数据库序列生成方法
技术领域
本发明涉及软件开发技术领域,具体涉及一种通用的数据库序列生成方法。
背景技术
当前市面上常用的数据库软件,提供的序列解决机制各不相同——有的是提前生成序列作为数据记录ID,再插入数据记录信息;有的是在插入数据记录信息时才生成序列ID;有的提供了获取序列的接口;有的则内嵌在系统里,通过自增长实现,不提供直接获取序列的接口。这样使得开发应用软件时,当配置不同的数据库时,就必须调整生成或获取序列的程序代码,从而导致软件进行移植比较困难。
发明内容
本发明解决的技术问题在于提供一种通用的数据库序列生成方法;使应用系统软件在配置不同数据库时,不用再更改涉及数据库序列的代码,从而提高软件的可移植性。
本发明解决上述技术问题的技术方案是:
所述的方法通过SQL语句创建一个数据库表和三个存储过程;数据库表用来存储序列信息,第一个存储过程用来获取序列当前值,第二个存储过程用来设置并获取新的序列值,第三个存储过程用来设置序列的初始值;开发应用软件时,通过程序调用这三个存储过程,实现设置或获取序列值的功能。
通过数据库表sequence存储序列信息,包括序列名称name、阶值increment、序列当前值current_value;输入序列名称,调用currval存储过程,通过查询表sequence中name与输入的序列名称相同的current_value值并返回,从而获取到该序列的当前值;输入序列名称,调用nextval存储过程,将表sequence中name与输入的序列名称相同的current_value值,更新为current_value当前值与increment的值之和,并返回该值,从而获得该序列的新序列号;输入序列名称、序列值,调用setval存储过程,将表sequence中name与输入的序列名称相同的current_value值,更新为输入的序列值,并返回该值,完成设置该序列的起始号。
主要包括如下步骤:
第1步、创建数据库表sequence存储序列信息,包括序列名称name、阶值(即两个相邻序列间隔的值)increment、序列当前值current_value;
第2步、创建获取序列当前值的存储过程currval,该存储过程通过查询表sequence中name与输入的序列名称相同的current_value值获取到该序列的当前值;
第3步、创建获取序列新序列号的存储过程nextval,该存储过程执行将表sequence中name与输入的序列名称相同的current_value值,更新为current_value当前值与increment的值之和的操作,并返回该值作为新的序列号;
第4步、创建设置序列值的存储过程setval,该存储过程执行将表sequence中name与输入的序列名称相同的current_value值,更新为输入的序列值的操作,设置该序列的起始号。
本发明的有益效果是:用简单的SQL语句创建存储序列的表和操作序列值的存储过程,开发应用软件时,通过程序代码调用存储过程,实现设置或获取序列值的功能,降低应用程序与具体数据库的耦合,提高应用软件的可移植性。
附图说明
下面结合附图对本发明进一步说明:
图1为数据库中存储序列的sequence表结构图;
图2为存储过程currval获取序列当前值的操作图;
图3为存储过程nextval获取新序列值的操作图;
图4为存储过程setval设置序列值的操作图。
具体实施方式
下面我们以MySQL数据库为例,讲述该方法的实施:
第1步、创建存储序列信息的数据库表sequence,SQL语句如下:
第2步、创建获取序列当前值的存储过程currval,SQL语句如下:
第3步、创建获取序列新序列号的存储过程nextval,SQL语句如下:
第4步、创建设置序列值的存储过程setval,SQL语句如下:

Claims (3)

1.一种通用的数据库序列生成方法,其特征在于:所述的方法通过SQL语句创建一个数据库表和三个存储过程;数据库表用来存储序列信息,第一个存储过程用来获取序列当前值,第二个存储过程用来设置并获取新的序列值,第三个存储过程用来设置序列的初始值;开发应用软件时,通过程序调用这三个存储过程,实现设置或获取序列值的功能。
2.根据权利要求1所述的通用的数据库序列生成方法,其特征在于:
通过数据库表sequence存储序列信息,包括序列名称name、阶值increment、序列当前值current_value;输入序列名称,调用currval存储过程,通过查询表sequence中name与输入的序列名称相同的current_value值并返回,从而获取到该序列的当前值;输入序列名称,调用nextval存储过程,将表sequence中name与输入的序列名称相同的current_value值,更新为current_value当前值与increment的值之和,并返回该值,从而获得该序列的新序列号;输入序列名称、序列值,调用setval存储过程,将表sequence中name与输入的序列名称相同的current_value值,更新为输入的序列值,并返回该值,完成设置该序列的起始号。
3.根据权利要求2所述的通用的数据库序列生成方法,其特征在于:主要包括如下步骤:
第1步、创建数据库表sequence存储序列信息,包括序列名称name、阶值increment、序列当前值current_value;
第2步、创建获取序列当前值的存储过程currval,该存储过程通过查询表sequence中name与输入的序列名称相同的current_value值获取到该序列的当前值;
第3步、创建获取序列新序列号的存储过程nextval,该存储过程执行将表sequence中name与输入的序列名称相同的current_value值,更新为current_value当前值与increment的值之和的操作,并返回该值作为新的序列号;
第4步、创建设置序列值的存储过程setval,该存储过程执行将表sequence中name与输入的序列名称相同的current_value值,更新为输入的序列值的操作,设置该序列的起始号。
CN201410610011.1A 2014-10-31 2014-10-31 一种通用的数据库序列生成方法 Pending CN104462206A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410610011.1A CN104462206A (zh) 2014-10-31 2014-10-31 一种通用的数据库序列生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410610011.1A CN104462206A (zh) 2014-10-31 2014-10-31 一种通用的数据库序列生成方法

Publications (1)

Publication Number Publication Date
CN104462206A true CN104462206A (zh) 2015-03-25

Family

ID=52908242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410610011.1A Pending CN104462206A (zh) 2014-10-31 2014-10-31 一种通用的数据库序列生成方法

Country Status (1)

Country Link
CN (1) CN104462206A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866571A (zh) * 2015-05-22 2015-08-26 国云科技股份有限公司 一种在SQL Server中实现Sequence的方法
CN107247770A (zh) * 2017-06-05 2017-10-13 广东亿迅科技有限公司 基于zookeeper的全局序列生成方法及装置
CN107766557A (zh) * 2017-11-03 2018-03-06 金蝶软件(中国)有限公司 一种数据库序列的生成方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010504A1 (en) * 2002-05-15 2004-01-15 Hinrichs Steven H. Custom sequence databases and methods of use thereof
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010504A1 (en) * 2002-05-15 2004-01-15 Hinrichs Steven H. Custom sequence databases and methods of use thereof
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
CN103631910A (zh) * 2013-11-26 2014-03-12 烽火通信科技股份有限公司 一种分布式数据库多列复合查询的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID CAMP: "PostgreSQL 序列(SEQUENCE)", 《HTTP://WWW.CNBLOGS.COM/MCHINA/ARCHIVE/2013/04/10/3012493.HTML#TOP》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866571A (zh) * 2015-05-22 2015-08-26 国云科技股份有限公司 一种在SQL Server中实现Sequence的方法
CN107247770A (zh) * 2017-06-05 2017-10-13 广东亿迅科技有限公司 基于zookeeper的全局序列生成方法及装置
CN107766557A (zh) * 2017-11-03 2018-03-06 金蝶软件(中国)有限公司 一种数据库序列的生成方法及相关装置

Similar Documents

Publication Publication Date Title
CN109739934B (zh) 差集对账方法、介质、计算机设备及系统
CN103995854A (zh) 一种设备跨版本升级方法和装置
CN103970833B (zh) 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法
CN110704398A (zh) 从MySQL到Oracle的数据库迁移方法、装置及计算机设备
WO2004114160A3 (en) Systems and processes for automated criteria and attribute generation, searching, auditing and reporting of data
WO2016169527A1 (zh) 一种藻类计数数据语音快速录入及报表生成系统和方法
CN102999527B (zh) Sns网络中动态信息推送方法及系统
CN104462206A (zh) 一种通用的数据库序列生成方法
CN105224527A (zh) 适用于多种目的表更新方式的通用etl方法
CN102110102A (zh) 数据处理方法及装置、文件识别方法及工具
CN103927314A (zh) 一种数据批量处理的方法和装置
CN106156070A (zh) 一种查询方法、文件合并方法与相关装置
CN102622384A (zh) 一种文件管理的方法
CN105279285A (zh) 一种关系型数据库与非关系型数据库的同步系统及方法
CN105975489A (zh) 一种基于元数据的在线sql代码补全方法
CN105447105A (zh) 基于NoSQL的分布式物联网数据的单字段区间索引查询方式
CN104598570A (zh) 资源的抓取方法及装置
CN102215264B (zh) 一种支持多租户数据与服务定制运行的方法和装置
CN103942280A (zh) 一种基于数据结构自动生成代码的方法
CN103678682A (zh) 基于抽象模板的海量栅格数据处理及管理方法
CN103034740B (zh) 一种原理图驱动版图的生成层次版图方法
CN103207859B (zh) 整合数据库的方法和装置
CN102436501A (zh) 一种基于web的并行文件管理系统
EP2506540B1 (en) Enhanced contact information
CN103853832B (zh) 一种全文检索系统中可定制的数据抓取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150325

WD01 Invention patent application deemed withdrawn after publication