MySQL建立自增序列(Sequence)

2021-10-11 12:22:33 字數 2308 閱讀 5346

點關注不迷路,歡迎再訪!
精簡部落格內容,盡量已行業術語來分享。

努力做到對每一位認可自己的讀者負責。

幫助別人的同時更是豐富自己的良機。

mysql不支援直接的sequence,所以需要建立一張table來模擬sequence的功能

create

table

uuser_sequence

( name varchar(50

)not

null

, current_value int

notnull

, increment int

notnull

default1,

primary

key(name)

);

drop

function

ifexists currval;

delimiter $

create

function

currval

(seq_name varchar(50

))returns

integer

language

sqldeterministic

contains

sqlsql

security

definer

comment

''begin

declare value integer

;set value =0;

select current_value into value

from uuser_sequence

where name = seq_name;

return value;

end$

delimiter

;

drop

function

ifexists nextval;

delimiter $

create

function

nextval

(seq_name varchar(50

))returns

integer

language

sqldeterministic

contains

sqlsql

security

definer

comment

''begin

update uuser_sequence

set current_value = current_value + increment

where name = seq_name;

return

currval

(seq_name)

;end

$ delimiter

;

drop

function

ifexists setval;

delimiter $

create

function

setval

(seq_name varchar(50

), value integer

)returns

integer

language

sqldeterministic

contains

sqlsql

security

definer

comment

''begin

update uuser_sequence

set current_value = value

where name = seq_name;

return

currval

(seq_name)

;end

$ delimiter

;

--新增乙個sequence名稱和初始值,以及自增幅度

insert

into uuser_sequence values

('group_user_seq'

,100,1

);--查詢指定sequence的下乙個值

select

nextval

('group_user_seq'

);

MySQL 自增序列

5.7.23 select version 非主鍵形式的自增欄位 create table test3 id int auto increment not null,str varchar 2 key id 自增預設從1開始 truncat後,自增序列重新開始 設定自增開始值 同時 建立自增序列字段...

mysql 實現id自增序列 mysql自增id列

如果希望在每次插入新記錄時,自動地建立主鍵欄位的值。可以在表中建立乙個 auto increment 字段。mysql 使用 auto increment 關鍵字來執行 auto increment 任務。預設地auto increment 的開始值是 1,每條新記錄遞增 1。主鍵又稱主關鍵字,主關...

ORACLE建立自增序列

步驟 1.建立序列 2.建立觸發器。語法解析 create sequence tb code sequence minvalue 1 maxvalue 999999999999999999999999999 start with 11 increment by 1 cache 10 create o...