dual mysql 获取序列_详解mysql模拟Oracle序列的方案及实例演示

本文介绍了如何在MySQL中模拟Oracle序列,解决MySQL自增长限制的问题。通过创建sequence表和三个函数:func_currval、func_setval、func_nextval,实现了类似Oracle序列的功能。文章提供了一个详细的步骤指南,帮助进行Oracle到MySQL的数据迁移。
摘要由CSDN通过智能技术生成

概述

众所周知,Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的。

不过小编在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要oracle迁移数据库到mysql,主键方面还是不太好处理。


oracle序列

先介绍下oracle序列方面的内容,在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方或者在实际开发中,比如一个需求表格中的需求ID是唯一主键,都可以用sequence来获取。

首先在用Oracle序列号之前,我们首先得创建一个序列然后就可以通过CURRY、NEXTVAL,获取当前表中的返回sequence的当前值、下一个squence的值。可以通过下面的语句来创建Squence:

create sequence INR_REQUIRMENT_SQUENCE INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 

Oracle序列的使用,实际上是使用.nextval和.currval伪列。


mysql模拟Oracle序列的方案

Oracle序列的使用,实际上是使用.nextval和.currval伪列,这里我们的思路是:

1、MySQL中新建表并定义一张表sequence,每一行记录就可以作为一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值