CN104462206A - 一种通用的数据库序列生成方法 - Google Patents
一种通用的数据库序列生成方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating 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值,更新为输入的序列值的操作,设置该序列的起始号。
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)
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)
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 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的系统及方法 |
-
2014
- 2014-10-31 CN CN201410610011.1A patent/CN104462206A/zh active Pending
Patent Citations (3)
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)
Title |
---|
DAVID CAMP: "PostgreSQL 序列(SEQUENCE)", 《HTTP://WWW.CNBLOGS.COM/MCHINA/ARCHIVE/2013/04/10/3012493.HTML#TOP》 * |
Cited By (3)
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 |