mysql实现sequence

来源:这里教程网 时间:2026-03-01 15:32:45 作者:

-----mysql  创建sequence -- 创建随机数表 drop table if exists test.sequence_test_hsg;  create table test.sequence_test_hsg (        seqname        VARCHAR(50) NOT NULL, -- 序列名称        currentval     INT         NOT NULL, -- 当前值        incrementval   INT         NOT NULL    DEFAULT 1, -- 步长(跨度)        PRIMARY KEY (seqname)) ENGINE=InnoDB DEFAULT CHARSET=utf8;  -- 插入随机数信息 INSERT INTO test.sequence_test_hsg VALUES ('sq_ryid', '1000000000', '1'); -- 查询 SELECT * FROM test.sequence_test_hsg; -- 创建获取当前随机数函数 -- DROP  FUNCTION  currval; DELIMITER $  CREATE FUNCTION currval (seq_name VARCHAR(50)) RETURNS INTEGER BEGIN   DECLARE current INTEGER;   SET current = 0;   SELECT currentval INTO current   FROM  test.sequence_test_hsg   WHERE seqname = seq_name;   RETURN current; END$  DELIMITER ; -- 取下一个值函数 -- DROP  FUNCTION  nextval; DELIMITER $   CREATE FUNCTION nextval (seq_name VARCHAR(50))   RETURNS INTEGER   CONTAINS SQL   BEGIN      UPDATE test.sequence_test_hsg      SET currentval = currentval + incrementval      WHERE seqname = seq_name;      RETURN currval(seq_name);   END$   DELIMITER ;  -- 查询 select currval('sq_ryid'); select nextval('sq_ryid');

相关推荐