MYSQL手動建立序列

2021-09-28 20:55:47 字數 1503 閱讀 1018

**

第一步建立乙個序列表

create table if not existssequence(

namevarchar(50) not null,

current_valueint(11) not null,

incrementint(11) not null default 『1』 ,

primary key (name)

) engine=myisam default charset=utf8 checksum=1 delay_key_write=1 row_format=dynamic comment=『序列表,命名s_[table_name]』;

插入一條序列,這錶每條資料都是乙個序列分別為(序列名,序列當前值,序列步長)

insert intosequence(name,current_value,increment) values

(『s_ruleauto』, 0, 1);

建立查詢函式,返回序列當前值。

drop function if existscurrval;

delimiter //

create functioncurrval(seq_name varchar(50)) returns int(11)

reads sql data

deterministic

begin

declare value integer;

set value = 0;

select current_value into value from sequence where name = seq_name;

return value;

end//

delimiter ;

查詢序列下乙個值

drop function if existsnextval;

delimiter //

create functionnextval(seq_name varchar(50)) returns int(11)

deterministic

begin

update sequence set current_value = current_value + increment where name = seq_name;

return currval(seq_name);

end//

delimiter ;

測試例子

select nextval(「s_ruleauto」)

select currval(「s_ruleauto」);

mysql序列 mysql建立序列

提到mysql,我順便講講序列。用過oracle的人都知道,orale沒有類似mysql的auto increment這樣的自增長字段,實現插入一條記錄,自動增加1.oracle是通過sequence 序列 來完成的。這樣看起來,似乎mysql的自增長要比oracle序列的實現更好更方便。那我為什麼...

建立mysql的服務 手動建立MySQL服務

1.複製乙份mysql服務檔案,放入乙個路徑 2.清理data資料夾下檔案,僅保留mysql等 3.修改my.ini,port,dir等配置 4.管理員執行cmd,cd bin mysqld install servername 5.修改regedit servername 的imagepath m...

mysql建立序列

提到mysql,我順便講講序列。用過oracle的人都知道,orale沒有類似mysql的auto increment這樣的自增長字段,實現插入一條記錄,自動增加1.oracle是通過sequence 序列 來完成的。這樣看起來,似乎mysql的自增長要比oracle序列的實現更好更方便。那我為什麼...