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

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

    1.创建sequence表

    CREATE TABLE `sequence` (
     `name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '序列的名字',
     `current_value` int(11) NOT NULL COMMENT '序列的当前值',
     `increment` int(11) NOT NULL DEFAULT '1' COMMENT '序列的自增值',
     PRIMARY KEY (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    

    2.创建–取当前值的函数

    DROP FUNCTION IF EXISTS currval; 
    DELIMITER $ 
    CREATE FUNCTION currval (seq_name VARCHAR(50)) 
       RETURNS INTEGER
       LANGUAGE SQL 
       DETERMINISTIC 
       CONTAINS SQL 
       SQL SECURITY DEFINER 
       COMMENT ''
    BEGIN
       DECLARE value INTEGER; 
       SET value = 0; 
       SELECT current_value INTO value 
         FROM sequence
         WHERE name = seq_name; 
       RETURN value; 
    END
    $ 
    DELIMITER ; 
    

    3.创建–取下一个值的函数

    DROP FUNCTION IF EXISTS nextval; 
    DELIMITER $ 
    CREATE FUNCTION nextval (seq_name VARCHAR(50)) 
       RETURNS INTEGER 
       LANGUAGE SQL 
       DETERMINISTIC 
       CONTAINS SQL 
       SQL SECURITY DEFINER 
       COMMENT '' 
    BEGIN 
       UPDATE sequence 
         SET current_value = current_value + increment 
         WHERE name = seq_name; 
       RETURN currval(seq_name); 
    END 
    $ 
    DELIMITER ; 
    

    4.创建–更新当前值的函数

    DROP FUNCTION IF EXISTS setval; 
    DELIMITER $ 
    CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER) 
       RETURNS INTEGER 
       LANGUAGE SQL 
       DETERMINISTIC 
       CONTAINS SQL 
       SQL SECURITY DEFINER 
       COMMENT '' 
    BEGIN 
       UPDATE sequence 
         SET current_value = value 
         WHERE name = seq_name; 
       RETURN currval(seq_name); 
    END 
    $ 
    DELIMITER ; 
    

    5.测试添加实例 执行sql

    INSERT INTO sequence VALUES ('testSeq', 0, 1);-- 添加一个sequence名称和初始值,以及自增幅度
     
    SELECT SETVAL('testSeq', 10);-- 设置指定sequence的初始值
     
    SELECT CURRVAL('testSeq');-- 查询指定sequence的当前值
     
    SELECT NEXTVAL('testSeq');-- 查询指定sequence的下一个值

    到此这篇关于mysql实现自增序列的示例代码的文章就介绍到这了,更多相关mysql 自增序列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • mysql自增ID起始值修改方法
    • mysql如何让自增id归0解决方案
    • 怎么重置mysql的自增列AUTO_INCREMENT初时值
    • Java获取最后插入MySQL记录的自增ID值的3种方法
    • mysql中自增auto_increment功能的相关设置及问题
    • MySQL rownumber SQL生成自增长序号使用介绍
    • 关于Mysql自增id的这些你可能还不知道
    • MySQL分表自增ID问题的解决方法
    • mysql自增id超大问题的排查与解决
    • mysql修改自增长主键int类型为char类型示例
    • 利用Java的MyBatis框架获取MySQL中插入记录时的自增主键
    上一篇:mysql 实现设置多个主键的操作
    下一篇:M1芯片安装mysql8.0数据库的实现步骤(图文)
  • 相关文章
  • 

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

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

    mysql实现自增序列的示例代码 mysql,实现,自增,序列,的,