MySql教程

Mysql数据库创建序列

本文主要是介绍Mysql数据库创建序列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天想使用做一个单点登录系统的,使用的是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数据库创建序列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!