`

mysql设置自动增长序列sequence

 
阅读更多

 

create table tb_sequence(name varchar(50) not null,current_value int not null,_increment int not null default 1, primary key(name));

 =========================================

 

 

insert into tb_sequence values('ENUMERATE_ID',100,1);

 =========================================

 

 

DELIMITER //  
create function _nextval(n varchar(50)) returns integer   
begin  
declare _cur int;  
set _cur=(select current_value from tb_sequence where name= n);  
update tb_sequence  
 set current_value = _cur + _increment  
 where name=n ;  
return _cur;  
end;  
//

 =========================================

 

执行完毕以上几步之后,就可以执行以下sql进行验证了

 

select _nextval('ENUMERATE_ID');

 第一次结果是100,之后每次查询都会自动加1。

 

每次增加多少取决于第二次的insert into tb_sequence values('ENUMERATE_ID',100,1),这个1,如果你设成2,那么每次查询之后就增加2。设置不同的name值,为不同的表业务使用。

分享到:
评论

相关推荐

    在MySQL中创建实现自增的序列(Sequence)的教程

    在MySQL中,自增序列(Sequence)是一种常用于生成唯一标识符的数据结构,尤其是在Oracle数据库中广泛使用。然而,MySQL自身并不直接支持Sequence,但可以通过创建表和存储过程来模拟这个功能。本教程将详细解释如何...

    java通过Mysql实现类似oracle序列功能序列.rar

    - 在MySQL中,你可以创建一个带有`AUTO_INCREMENT`属性的表字段,这个字段会在每次插入新记录时自动增加。这可以作为序列的替代方案。例如,创建一个名为`sequence`的表,包含一个名为`id`的自增字段。 4. **存储...

    Oracle与Mysql自动增长列(id)的区别

    综上所述,Oracle和MySQL在自动增长列的实现方式上有显著区别,Oracle依赖于序列,而MySQL直接在表定义中使用`AUTO_INCREMENT`。这些差异反映了两个数据库系统在设计哲学和功能上的不同,选择哪一个通常取决于具体的...

    mysql生成oracle序列

    Oracle提供了内置的支持来管理自动递增的数字序列,而MySQL并没有原生支持序列这一特性。因此,在进行Oracle到MySQL的数据迁移时,需要采用特定的技术手段来模拟Oracle中的序列行为。 #### 二、MySQL中模拟Oracle...

    mysql-sequence:nodejs的mysql序列生成器

    MySQL序数生成器是开发...以上就是关于"mysql-sequence"这个Node.js MySQL序列生成器的基本介绍和使用方法。通过这个库,开发者可以在不依赖数据库特定功能的情况下,高效地管理序列,提高应用程序的灵活性和可靠性。

    如何为oracle中的表增加自动增长列.pdf

    在Oracle数据库中,表的自动增长列通常是指使用序列(SEQUENCE)或者使用Oracle提供的自动增长数据类型(例如:IDENTITY或者GENERATED AS IDENTITY),以实现表中某列值能够随着记录的增加而自动递增。本文将介绍...

    Mysql(序列/ID)生成方案

    首先,让我们关注`mysql_sequence.sql`文件。这个SQL脚本通常会包含创建序列的表结构以及相关的操作,例如插入、更新或获取下一个ID。常见的方法是使用自增主键,但这种做法在高并发环境下可能会遇到问题,如ID的...

    MySQL实现类似Oracle序列的方案

    Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...

    mysql中实现sequence.pdf

    在MySQL中,序列(Sequence)通常用于生成唯一的标识符,特别是在那些没有内置序列支持的数据库系统中,如MySQL。在Oracle或PostgreSQL等其他数据库中,我们可以直接创建序列对象,但在MySQL中,我们需要采取一些...

    MySQL生成Oracle序列参考案例

    4. `valuelen`:长度字段,用于确定序列值的最大长度,当达到最大长度后,序列值会自动回归至初始状态。 接下来,文档介绍了创建的三个函数,这些函数分别用于获取序列的当前值、获取序列的下一个值以及设置序列的...

    oracle主键自动增长

    在Oracle数据库中,并没有像MySQL那样的自动增长字段特性,因此在实际应用中,我们常常需要手动实现这一功能。序列(Sequence)是Oracle提供的一种用于生成一系列唯一数值的对象,非常适合用来作为表中的主键值。 #...

    oracle迁移mysql自增序列问题

    Oracle数据库中,自增序列通常通过Sequence对象实现,而MySQL则通过在表定义中设置`AUTO_INCREMENT`属性来实现自增主键。 在描述中,我们看到一个具体的例子,首先创建了一个名为`test`的MySQL表,包含两个字段:`...

    在hibernate中实现oracle的自动增长

    Oracle数据库提供了强大的序列(sequence)功能来支持自动增长,这是实现主键自动生成的有效手段。与MySQL或SQL Server等其他数据库系统不同,Oracle不直接支持自增列(auto-increment column),而是通过序列(sequence)...

    深入Mysql,SqlServer,Oracle主键自动增长的设置详解

    本文将深入探讨MySQL、SQL Server和Oracle这三种主流数据库系统中主键自动增长的设置方法。 在MySQL中,主键自动增长是通过`auto_increment`关键字实现的。当你创建一个表并定义某个字段为`auto_increment`类型的...

    mysql雪花算法生成唯一整型ID主键的实现方法

    为了初始化序列,我们可以插入一条记录到`sequence`表,并调用`setval`函数设置初始值。例如,这里使用了一个19位的UUID_SHORT()生成的数值,加上特定前缀"1987",使其与雪花算法的长度和格式保持一致: ```sql ...

    mysql-sequence-ts:MySQL序列同步查询

    MySQL的序列TS 阿尔法版 管理异步mysql查询。 一个接一个地执行查询,并将结果从一个查询传递到第二个查询。 用法 在不久的将来,请耐心等待。 测验 模块具有简单的测试 打字稿 这个模块是用TypeScript编写的 如果...

    基于Mysql的Sequence实现方法

    然而,MySQL数据库本身并不直接支持类似Oracle的Sequence功能。当从Oracle迁移到MySQL时,我们需要寻找替代的实现方式。本文将探讨如何在MySQL中模拟Sequence,并考虑在分布式场景下满足一定的并发要求。 一种常见...

Global site tag (gtag.js) - Google Analytics