Mysql数据库创建序列
2021/6/8 19:33:36
本文主要是介绍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数据库创建序列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享