mysql 之 序列实现

本文介绍了在MySQL中如何实现序列效果,当面对只有一个自增字段限制及多表、多自增字段需求时,提供了利用MySQL函数的方法。内容包括创建序列化表、查询当前值函数、设定特定值函数的创建与执行,以及注意事项,如开启bin-log时的函数参数设置。
摘要由CSDN通过智能技术生成

Mysql实现序列效果

当我们想要一个连续的且自增的数据型值,对于oracle数据库,可以通过创建一个sequence来实现。但不巧,当我们所用的是mysql数据库时该如何实现呢。通常对于单个表需要一个自增的字段,我们可以通过使用mysql的auto_increment来实现,但是一个表只能有一个自增字段,也就是说自增长只能分给固定表固定字段,不能被多表共用,并且只能是数字类型。当我们一个表中有多个自增字段,或者进行了分表时,该如何实现呢?实现方法有很多,如雪花算法,借助redis等都可以获取一个满足条件的值。这里主要介绍一下使用mysql的function来实现

—创建序列化表

CREATE TABLE sequence (
seq_name VARCHAR(50) NOT NULL, -- 序列名称
current_val INT NOT NULL, -- 当前值
increment_val INT NOT NULL DEFAULT 1, -- 步长(跨度)
PRIMARY KEY (seq_name) );

—准备一条数据插入到表中

INSERT INTO sequence VALUES ('seq_users_id', '0', '1');

—创建查询当前值函数

DELIMITER $$

CREATE
    /*[DEFINER = {
    user | CURRENT_USER }]*/
    FUNCTION `springboot`.`currval`(v_seq_name VARCHAR(50
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值