您现在的位置是:网站首页> 编程资料编程资料
mysql实现sequence功能的代码_Mysql_
2023-05-27
396人已围观
简介 mysql实现sequence功能的代码_Mysql_
mysql实现sequence功能
1.建立sequence记录表
CREATE TABLE `sys_sequence` ( `seq_name` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, `min_value` int(11) NOT NULL, `max_value` int(11) NOT NULL, `current_value` int(11) NOT NULL, `increment_value` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`seq_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
2.建立sequence基础函数
DELIMITER $$ CREATE DEFINER=`root`@`%` FUNCTION `_nextval`(name varchar(50)) RETURNS int(11) begin declare _cur int; declare _maxvalue int; -- 接收最大值 declare _increment int; -- 接收增长步数 set _increment = (select increment_value from sys_sequence where seq_name = name); set _maxvalue = (select max_value from sys_sequence where seq_name = name); set _cur = (select current_value from sys_sequence where seq_name = name); update sys_sequence -- 更新当前值 set current_value = _cur + increment_value where seq_name = name ; if(_cur + _increment >= _maxvalue) then -- 判断是都达到最大值 update sys_sequence set current_value = min_value where seq_name = name ; end if; return _cur; end$$ DELIMITER ;
3.插入想要建立的sequence
INSERT INTO `mydb`.`sys_sequence` (`seq_name`, `min_value`, `max_value`, `current_value`, `increment_value`) VALUES ('seq_name1', 1, 99999999, 1, 1);4.使用sequence
select _nextval('seq_name1');总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
相关内容
- Can't connect to local MySQL through socket '/tmp/mysql.sock'解决方法_Mysql_
- mysql中rpm方式安装的详解_Mysql_
- Mysql常用函数大全(分类汇总讲解)_Mysql_
- 利用MySQL主从配置实现读写分离减轻数据库压力_Mysql_
- 如何彻底删除mysql服务(清理注册表)详解_Mysql_
- MySQL压缩版zip安装问题的解决方法_Mysql_
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)_Mysql_
- 将图片储存在MySQL数据库中的几种方法_Mysql_
- MySQL存储文本和图片的方法_Mysql_
- Ubuntu上mysql的安装及使用(通用版)_Mysql_
