mysql自動成長シーケンスsequenceの設定

1122 ワード

create table tb_sequence(name varchar(50) not null,current_value int not null,_increment int not null default 1, primary key(name));

 =========================================
 
 
insert into tb_sequence values('ENUMERATE_ID',100,1);

 =========================================
 
 
DELIMITER //  
create function _nextval(n varchar(50)) returns integer   
begin  
declare _cur int;  
set _cur=(select current_value from tb_sequence where name= n);  
update tb_sequence  
 set current_value = _cur + _increment  
 where name=n ;  
return _cur;  
end;  
//

 =========================================
 
以上のステップを実行すると、以下のsqlを実行して検証できます.
 
select _nextval('ENUMERATE_ID');

最初の結果は100で、その後はクエリのたびに自動的に1が加算されます.
 
毎回どれだけ増加するかは2回目のinsert into tb_に依存する.sequence values('ENUMERATE_ID',100,1)この1を2に設定すると、クエリのたびに2が増加します.異なるname値を設定し、異なるテーブルビジネスで使用します.