首页 > 数据库技术 > 详细

Mysql数据库创建序列

时间:2021-06-08 17:16:26      阅读:18      评论:0      收藏:0      [点我收藏+]

今天想使用做一个单点登录系统的,使用的是mysql数据库,因为之前使用的是sqlserver数据库,建完表之后返现没有没有序列,网上找了一下发现mysql是没有提供

序列进行取值的。

那么mysql 想有一个类似SQL server的功能应该如何实现呢。

实现思路   建立一张表存放对应序列号的当前值 --》创建一个函数每去一次值则对应的序列号增加

如图所示:

第一步;建立对应的表

CREATE TABLE seqUserloginInfo (
name VARCHAR(50) NOT NULL,
current_value INT NOT NULL,
increment INT NOT NULL DEFAULT 1,
PRIMARY KEY (name)
);

技术分享图片

 

第二步.建立对应的函数(也可以是存储过程)

1查询函数

CREATE FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS int(11)
BEGIN
DECLARE value int;
set value=0;
SELECT current_value INTO value FROM seqUserloginInfo where name=seq_name;
return value;
END

2.消耗一个序列

 

CREATE FUNCTION `nextval`(seq_name VARCHAR(50)) RETURNS int(11)
BEGIN
UPDATE seqUserloginInfo SET current_value = current_value + increment where name=seq_name ;
RETURN currval(seq_name);
END

3.消耗多个序列

CREATE FUNCTION `setval`(seq_name VARCHAR(50), value INTEGER) RETURNS int(11)
BEGIN
UPDATE seqUserloginInfo
SET current_value = value where name=seq_name;
RETURN currval(seq_name);
END

 

技术分享图片

 

 

测试:

 

 

SELECT nextval(‘userlogininfo‘,10)

SELECT setval(‘userlogininfo‘,10)

 

Mysql数据库创建序列

原文:https://www.cnblogs.com/shuangxingxitong/p/14862230.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!