mysql函数实现oracle的序列
1、创建一张伪序列表
CREATE TABLE sequence (
seq_name VARCHAR (50) NOT NULL,-- 序列名称
current_val INT NOT NULL,-- 当前值
increment_val INT NOT NULL DEFAULT 1,-- 步长(跨度)
PRIMARY KEY (seq_name)
);
2、创建一个获取当前数据的函数(from 后面跟的表和上面创建的一致)
create function currval(v_seq_name VARCHAR(50))
returns integer(11)
begin
declare value integer;
set value = 0;
select current_val into value from sequence where seq_name = v_seq_name;
return value;
end;
3、创建一个获取下一条数据的函数(from 后面跟的表和上面创建的一致)
create function nextval (v_seq_name VARCHAR(50))
returns integer(11)
begin
update sequence set current_val = current_val + increment_val where seq_name = v_seq_name;
return currval(v_seq_name);
end;
4、插入一条数据
INSERT INTO sequence VALUES ('var_cash', '0', '1');
5、调用上面的函数获取相关的值
select nextval('var_cash');
select currval('var_cash');
参考:https://blog.csdn.net/sinat_19351993/article/details/47169789
纸上得来终觉浅,绝知此事要躬行。