Mysql实现Oracle序列

CREATE TABLE SEQUENCE2 (
    NAME VARCHAR (100) NOT NULL COMMENT '序列名',
    current_value BIGINT NOT NULL COMMENT '当前值',
    increment BIGINT NOT NULL DEFAULT 1 COMMENT '增长值',
    PRIMARY KEY (NAME)
) ENGINE = INNODB DEFAULT CHARSET = gbk;

insert into sequence2(name,current_value,increment) values ('FL_ACCOUNT_INF_SEQUENCE',100000000001,1);

CREATE FUNCTION NEXTVAL2 (n VARCHAR(50)) RETURNS BIGINT
BEGIN
    DECLARE nextVal BIGINT;
    SET nextVal = (SELECT current_value + increment FROM sequence2 WHERE NAME = n);
    UPDATE sequence2 SET current_value = nextVal
    WHERE NAME = n;
  RETURN nextVal;
END;

-- 检验
select cast(nextval2('FL_ACCOUNT_INF_SEQUENCE') as char(12));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值