`

mysql自定义sequence

 
阅读更多

1.创建自定义sequence表

 

CREATE TABLE t_seq (
  `seq_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'sequence名称',
  `start_value` int(11) DEFAULT '1' COMMENT '开始数(默认为1)',
  `increment_value` int(11) DEFAULT '1' COMMENT '增量数(默认为1)',
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自定义 sequence 表';

 

2.插入一条sequence信息

 

INSERT INTO `t_seq` (`seq_name`, `start_value`, `increment_value`) VALUES ('seq_t_user', '1', '1');

 

3.定义nextval函数,对开始数进行增量计算,返回sequence值

 

CREATE FUNCTION `nextval`(str varchar(50)) RETURNS int(11)
begin
	declare i int;
	set i=(select start_value from t_seq where name=str);
	update t_seq
		set start_value=i+increment_value
	where name=str;
return i;
end

 

4.测试sequence取值

 

select nextval("seq_t_user") from dual;
分享到:
评论

相关推荐

    基于Mysql的Sequence实现方法

    在MySQL中,Oracle数据库中的Sequence概念可以通过自定义的方式进行模拟,因为MySQL本身并不直接支持Sequence。Sequence主要用于生成连续的整数序列,常用于主键生成或其他需要唯一标识的场景。以下是一个基于MySQL...

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

    在MySQL中实现雪花算法,主要是通过自定义函数来模拟这个过程。 首先,我们需要创建一个名为`sequence`的表来存储序列信息。这个表有四个字段:`name`用于存储序列名称,`current_value`记录当前序列值,`increment...

    mysql实现sequence功能的代码

    MySQL自身并不直接支持Sequence功能,但可以通过自定义的方式模拟这一功能。这里我们将详细介绍如何在MySQL中实现类似Oracle或PostgreSQL中的Sequence效果。 1. **建立Sequence记录表** 首先,我们需要创建一个名...

    db2迁移到mysql.docx

    DB2中的序列(sequence)在MySQL中没有直接等价物。通常,可以使用MySQL的自增(auto-increment)特性来模拟序列。但对于复杂的序列逻辑,如获取当前值或下一个值,需要编写自定义函数来实现。 ##### 5.1 获取当前值 ```...

    mysql转换到oracle数据库

    - **Oracle**:通过序列(sequence)来实现类似功能,但在程序设计时需要特别处理(使用Hibernate等ORM框架时则无需额外处理)。 **2. 分页查询** - **MySQL**:使用`LIMIT`关键字实现分页。 - **Oracle**:利用`...

    mysql生成oracle序列

    为了在MySQL中实现类似于Oracle序列的功能,可以通过创建一张特殊的表和几个自定义函数来实现。这种方法可以有效地模拟Oracle序列的行为,并能够根据指定的步长和长度来生成数值。 ##### 2.1 创建模拟序列的表 在...

    MySQL生成Oracle序列参考案例

    由于MySQL本身并不直接支持序列对象,因此需要借助自定义表和函数来模拟序列的行为。本文档提供了一个详细的迁移案例,以及相关的SQL脚本,使得在MySQL中可以实现与Oracle序列相似的功能。 首先,文档介绍了一个名...

    Python库 | django_mysql-3.7.1-py3-none-any.whl

    5. **Sequence字段**:在MySQL中模拟其他数据库系统的序列(序列号)功能。 6. **更高效的查询**:提供特定于MySQL的查询优化,例如使用`SQL_CALC_FOUND_ROWS`来获取分页结果的总数量。 7. **全文搜索**:利用MySQL...

    mysql 数据移植到oracle

    4. **序列和自增ID**:MySQL的自动递增ID在Oracle中可使用SEQUENCE来实现。 5. **字符集兼容**:确保两个数据库的字符集匹配,避免编码问题。 四、工具和技术: 1. **Oracle SQL Developer Data Pump**:Oracle官方...

    自定義編碼生成:編碼類型+年月日+流水碼

    本文将深入探讨如何根据"自定义编码生成:编码类型+年月日+流水码"这一主题,利用C#编程语言和MySQL数据库来设计和实现这样一个系统。 首先,自定义编码通常是为了满足特定业务场景的需求,例如订单号、发票号等。...

    基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版_JAR)

    支持MySQL、Oracle、SQL Servce、PostgreSQL四种数据库,支持Window、Linux、MacBook等多种操作系统。 TableGo v5.8.8版震撼发布,此次版本更新如下: 1、新增两个扩展字段,用于生成自定义模板时使用。 2、...

    MySQL实现类似Oracle序列的方案

    这样,我们就可以像使用Oracle序列一样在MySQL中操作这些自定义序列了。例如,如果要创建一个名为`MovieSeq`的序列,并设置其初始值为100,可以执行以下操作: ```sql INSERT INTO sequence (seq_name, current_val...

    jeecms-2.3.2-final-db oracl建库脚本

    此外,MySQL的自动增长主键通常用AUTO_INCREMENT,而Oracle中对应的则是SEQUENCE和IDENTITY属性。 在Jeecms的建库脚本转换中,我们需要关注以下几点: 1. **数据类型转换**:MySQL中的INT在Oracle中可能是NUMBER,...

    用mysql触发器自动更新memcache的实现代码

    为了将MySQL与Memcache集成,我们可以使用MySQL的User Defined Functions(UDF),这是MySQL提供的一种扩展机制,允许用户自定义函数。在这个案例中,我们需要使用名为`Memcached Functions for MySQL`的库,它提供...

    sqlite迁移到mysql脚本的方法

    - **忽略特定语句**:脚本中注释掉`BEGIN TRANSACTION`、`COMMIT`、`sqlite_sequence`和`CREATE UNIQUE INDEX`等SQLite特有的语句,因为MySQL可能不支持或处理方式不同。 - **数据类型转换**:例如,将`varchar`...

    分布式id生成器.zip

    在实现上, UidGenerator通过借用未来时间来解决sequence天然存在的并发限制; 采用RingBuffer来缓存已生成的UID, 并行化UID的生产和消费, 同时对CacheLine补齐,避免了由RingBuffer带来的硬件级「伪共享」问题. 最终...

    JPA环境搭建及JPA实例与JPA主键生成策略

    2. **SEQUENCE**:使用数据库序列生成主键,适用于支持序列的数据库,如Oracle。 3. **TABLE**:通过数据库表生成主键,适用于不支持序列的数据库,如MySQL。 4. **UUID**:生成全局唯一的UUID字符串作为主键。 5. *...

    JAVA 的ID生成策略

    这种方式使用@SequenceGenerator(name="生成器名", sequenceName="DB 中生成器名")注解,适用于所有数据库管理系统。在这种方式下,开发者可以自定义序列生成器的名称和数据库中序列的名称,并将其用作主键值。 在...

Global site tag (gtag.js) - Google Analytics