• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql实现sequence功能的代码

    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');

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • MySQL关于sql_mode解析与设置讲解
    • MySQL组合索引与最左匹配原则详解
    • MySQL中可为空的字段设置为NULL还是NOT NULL
    • MySQL中字段类型char、varchar和text的区别
    • MySQL数据库迁移快速导出导入大量数据
    • shell脚本操作mysql数据库删除重复的数据
    • MySQL数据库列的增删改实现方法
    • MySQL实现类似Oracle序列的方案
    • Can''t connect to local MySQL through socket ''/tmp/mysql.sock''解决方法
    • mysql事务select for update及数据的一致性处理讲解
    上一篇:mysql 8.0.15 下载安装详细教程 新手必备!
    下一篇:MySQL实现类似Oracle序列的方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mysql实现sequence功能的代码 mysql,实现,sequence,功能,的,