第一步:创建一个索引管理表,其中包含,索引名称、最小值、最大值、当前值、增量,并设置主键为索引名称。

CREATE TABLE TB_SEQUENCE (
SEQ_NAME VARCHAR(50) NOT NULL,
MINVALUE INT NOT NULL ,
MAX_VAL DECIMAL(31) NOT NULL,
CURRENT_VAL DECIMAL(31) NOT NULL,
INCREMENT_VAL INT DEFAULT '1' NOT NULL,
PRIMARY KEY (SEQ_NAME)
)

第二步:给索引管理表中插入要实现的一条索引管理数据

INSERT INTO TB_SEQUENCE (SEQ_NAME, MINVALUE, MAX_VAL, CURRENT_VAL, INCREMENT_VAL) values ('SEQ_NUM', 1,  9999999999999999999999999999999, 1, 1);

第三步:创建一个获取下一条数据的函数

DELIMITER $$
create function _nextval(name varchar(50)) returns DECIMAL(31)
begin
declare _cur DECIMAL(31);
declare _maxvalue DECIMAL(31);
declare _increment int;
declare _nextVal DECIMAL(31);
set _cur = (select CURRENT_VAL from TB_SEQUENCE where SEQ_NAME = name);
set _increment = (select INCREMENT_VAL from TB_SEQUENCE where SEQ_NAME = name);
set _maxvalue = (select MAX_VAL from TB_SEQUENCE where SEQ_NAME = name);
set _nextVal = _cur + _increment;
update TB_SEQUENCE set CURRENT_VAL = _nextVal where SEQ_NAME = name ;
if(_nextVal >= _maxvalue) then
update TB_SEQUENCE set CURRENT_VAL = 1 where SEQ_NAME = name ;
end if;
return _nextVal;
end;
$$
DELIMITER ;

好了~

测试一下:

select _nextval('SEQ_NUM') from dual;

点个赞吧,鼓励一下!

最新文章

  1. Java NIO:NIO概述
  2. hdu 2191 多重背包
  3. java中的标记接口
  4. ajax+php处理案例
  5. 将long型转换为多少MB的方法
  6. Java学习-005-初学常用的几个经典循环控制源代码
  7. 目标检测的图像特征提取之(一)HOG特征
  8. Android OOM 解决方案
  9. weblogic启动问题
  10. 转:Javascript的10个设计缺陷
  11. MC- 交易并设置止损
  12. python3之微信文章爬虫
  13. Windows下如何将一个文件夹通过Git上传到GitHub上(转)
  14. 基于Docker的GoldenGate部署
  15. 《Inside C#》笔记(十三) 多线程 下
  16. 练习题|python常用模块
  17. 《剑指offer》第五十七题(为s的连续正数序列)
  18. flask 入门(二)
  19. 联想一体机怎么设置u盘启动|联想一体机bios改U盘启动方法(转)
  20. Explain之key_len长度计算

热门文章

  1. 二、MyBatis基础配置应用实例
  2. Spring AOP基础概念及自定义注解式AOP初体验
  3. Spring Boot 自动配置(基本配置)
  4. zabbix-agentd;客户端开启多个端口。
  5. Kubernetes集群使用CentOS 7.6系统时kubelet日志含有“Reason:KubeletNotReady Message:PLEG is not healthy:”信息
  6. 微信公众平台网页授权登陆access_token误区
  7. 【C# 线程】ContextBoundObject类 --上下文绑定 和SynchronizationAttribute属性 、同步域
  8. Thread、ThreadPool 和 Task
  9. Leaflet:LayerGroup、FeatureGroup
  10. Centos部署Loki日志聚合系统