mysql 实现类似Oracle 或 db2 sequence
第一步:创建一个索引管理表,其中包含,索引名称、最小值、最大值、当前值、增量,并设置主键为索引名称。
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;

点个赞吧,鼓励一下!
mysql 实现类似Oracle 或 db2 sequence的更多相关文章
- MySQL实现类似Oracle的序列
MySQL实现类似Oracle的序列 2013-10-22 10:33:35 我来说两句 作者:走过的足迹 收藏 我要投稿 MySQL实现类似Oracle的序列 Oracl ...
- MySQL实现类似Oracle中的nextval和currval
CREATE TABLE `sequence` ( `seq_name` varchar(50) NOT NULL, `current_val` int(11) NOT NULL, `incremen ...
- mysql添加类似oracle的伪列及查看表信息
sql格式: AS rownum, table_name.* ) r, table_name; AS rownum, table_name.字段1, table_name.字段2, table_nam ...
- Oracle、DB2、MySql、SQLServer JDBC驱动
四种数据库JDBC驱动,还列出了连接的Class驱动名和Url Pattern,DB2包括Type 2.Type 3和Type 4三种模式.注意驱动包名称的大小写. Oralce连接驱动包名和URL ...
- mysql定时脚本(event),类似oracle的job
mysql定时脚本(event),类似oracle的job 我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...
- MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK
原文地址:http://it.dataguru.cn/article-3352-1.html 摘要: 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来 ...
- Mysql使用event,类似oracle job
MySQL从5.1开始支持event功能,类似oracle的job功能.有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了.如linux crontab功能. ...
- MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序
MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 ...
- Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间
做易买网项目,由于对数据库插入系统时间不了解,常常遇到的问题: 1.java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配.原因:由于获取系统时间类型不对,应为sy ...
随机推荐
- JVM学习——学习方法论&学习大纲
2020年02月06日22:25:51 完成了Springboot系列的学习和Kafka的学习,接下来进入JVM的学习阶段 深入理解JVM 学习方法论 如何去学习一门课程--方法论 多讨论,从别人身上 ...
- 使用IDEA新建一个Spring Boot项目
本文使用Spring Initializer来创建 开发环境 操作系统:Windows 10 IDEA:2020.3.2 JDK:1.8 1. 启动IDEA,选择New Project(新建工程): ...
- kali主机探测命令与工具集
实验目的 熟悉ping.arping.fping.hping3.nbtscan.nping.p0f.xprobe2工具对目标主机的探测方法. 实验原理 目标识别工具发送特殊构造的数据包,根据返回的应答 ...
- 完爆Excel!一个令人惊艳的数据展示工具,让你做图更轻松高效
数据展示应该是最常见的需求,我们经常利用数据做总结.用数据做分享.但是我们该如何更好地展示给我们需要展示的人,如何才能让我们的数据表达更加动人,这个值得让人思索. 说到数据表达,常用的数据展示方式无非 ...
- 企业如何建立一体化数据分析平台?还是得说说那几家BI工具
近年来,BI工具和报表工具犹如一股春风,吹遍了大江南北,成为了众多企业的发展利器,受到了企业决策者的拥戴.同时,在企业信息化需求日益旺盛的市场里也孕育了不少BI工具与报表工具厂商.商业智能的应用在国外 ...
- mybatis和spring的xml基本配置
mybatis 导入依赖环境 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybat ...
- java创建线程的四种方法
第一种: 通过继承Thread类创建线程 第二种: 通过实现Runnable接口创建线程 这两种早已烂记于心,这里就不作过多的介绍, 主要介绍其源码 Thread类 implements Runna ...
- Qt:QVariant
0.说明 QVariant可以表现出Qt数据类型中最普遍的行为. 一个QVariant对象中一次只保留一个type()的单个值(有的type()可以是多值的,例如StringList),可以用conv ...
- omnet++:官方文档翻译总结(三)
翻译总结自:Turning it Into a Real Network - OMNeT++ Technical Articles 接官方文档翻译总结(二),本节主要是真实网络的搭建 Part 4 - ...
- WPS:添加公式后,行间距变宽的解决方法
找到公式所属段落的样式,右键修改样式 左下角'格式'中选择'段落' 段落间距设置为0,不要勾选与文档网格对齐