当前位置:   article > 正文

Mysql下通过自定义函数实现oracle中的自增序列_oracle 序列 setval

oracle 序列 setval

CREATE TABLE sequence (    

seqname VARCHAR(50) NOT NULL, 

currentValue INT NOT NULL, 

increment INT NOT NULL DEFAULT 1,

PRIMARY KEY (seqname)    

);

INSERT INTO sequence VALUES ('seq_host_id',100,1);  

CREATE FUNCTION currval(seq_name VARCHAR(50))   

RETURNS INT  

BEGIN  

    DECLARE value INT;  

    SELECT currentValue INTO value  

    FROM sequence  

    WHERE upper(seqname) = upper(seq_name);

    RETURN value;  

END;

CREATE FUNCTION nextval (seq_name VARCHAR(50))    

RETURNS INT    

BEGIN    

    DECLARE value INT;  

    UPDATE sequence    

    SET currentValue = currentValue + increment    

    WHERE upper(seqname) = upper(seq_name);  

    RETURN currval(seq_name);    

END;

CREATE FUNCTION setval (seq_name VARCHAR(50), value INT)    

RETURNS INT  

BEGIN   

    UPDATE sequence    

    SET currentValue = value    

    WHERE upper(seqname) = upper(seq_name);    

    RETURN currval(seq_name);    

END; 

使用示例:

select currval('seq_host_id');

select setval('seq_host_id',102);

select nextval('seq_host_id');

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/816673
推荐阅读
相关标签
  

闽ICP备14008679号