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値を設定し、異なるテーブルビジネスで使用します.