通过Mysql数据库的函数获取不重复的自增值

1.创建一个储值表:存储每次自增后的最新值,用于读取

CREATE TABLE `sequence` (
    `name` VARCHAR(50) NOT NULL,    //自增名
    `current_value` INT(11) NOT NULL,    //自增的最新值
    `increment` INT(11) NOT NULL DEFAULT '1'    //每次的增量
)

2.创建自增函数:

参数:自增表的name

返回:下一个自增值

CREATE DEFINER=`root`@`%` FUNCTION `sequence_nextval`(
	`seq_name` VARCHAR(50)
)
RETURNS int(11)
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT '获取下一个值'
BEGIN  

DECLARE VALUE INTEGER;  
  
SET VALUE = 0;
  
UPDATE sequence SET current_value = current_value + increment WHERE NAME = seq_name;  

SELECT current_value INTO VALUE FROM sequence WHERE NAME = seq_name;  
  
RETURN VALUE;  
  
END

3.调用:

SELECT sequence_nextval(#{name})

4.示例:

查询:

 

欢迎加Q讨论:361528529 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值