妙博客

主机评测 香港服务器 洛杉矶VPS测评

Mysql新建自增ID触发器

1. 新建序列表

drop table if exists sequence;  
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. 新增一个序列
INSERT INTO sequence VALUES ('seq_test1_num1', '0', '1');
INSERT INTO sequence VALUES ('seq_test1_num2', '0', '2');
 
3. 创建 函数 用于获取序列当前值(v_seq_name 参数值 代表序列名称)
create function currval(v_seq_name VARCHAR(50))  
returns integer 
begin     
    declare value integer;      
    set value = 0;      
    select current_val into value  from sequence where seq_name = v_seq_name;
   return value;
end;
 
4. 查询当前值
select
 
currval(
'seq_test1_num1'
);
 
5. 创建 函数 用于获取序列下一个值(v_seq_name 参数值 代表序列名称)
create function nextval (v_seq_name VARCHAR(50))
    returns integer
begin
    update sequence set current_val = current_val + increment_val  where seq_name = v_seq_name;
    return currval(v_seq_name);
end;
 
6. 查询下一个值
select
 
nextval(
'seq_test1_num1'
);


Copyright Your 142132.com Rights Reserved. 赣ICP备17010829号-2