mysql 自定義序列

2022-03-15 22:28:58 字數 2247 閱讀 5396

原文

mysql主鍵不用自增數字的時候,可以參考如下方式,我抄來的。

--

建立公共的序列表

drop

table

ifexists

t_common_sequence;

create

table

t_common_sequence (

seq_name

varchar(100) not

null comment '

序列名稱',

current_val

intnot

null comment '

當前值'

, increment_val

intnot

null

default'1

' comment '

增長值 預設1',

primary

key(seq_name)

)engine

=innodb

character

set=

utf8

comment='

公共的序列表';

--建立函式,獲取指定名稱的 當前序列值

delimiter //

drop

function

ifexists

f_currval;

create

function f_currval(v_seq_name varchar(100

))returns

intbegin

declare value int;

set value =0;

select current_val into

value

from

t_common_sequence

where seq_name =

v_seq_name;

return

value;

end;

//delimiter ; --

建立函式,獲取指定名稱的 下乙個序列值

delimiter //

drop

function

ifexists

f_nextval;

create

function f_nextval(v_seq_name varchar(100

))returns

intbegin

update

t_common_sequence

set current_val = current_val +

increment_val

where seq_name =

v_seq_name;

return

f_currval(v_seq_name);

end;

//delimiter ; --

建立函式,修改指定名稱的序列值,並返回

delimiter //

drop

function

ifexists

f_setval;

create

function f_setval(v_seq_name varchar(100), v_new_val int

)returns

intbegin

update

t_common_sequence

set current_val =

v_new_val

where seq_name =

v_seq_name;

return

f_currval(v_seq_name);

end;

//delimiter ;

insert

into t_common_sequence(seq_name,current_val,increment_val) values('

seq_job

',1,1);

--獲取當前序列

select f_currval('

seq_job');

--獲取下乙個序列

select f_nextval('

seq_job');

--設定序列值,並返回

select f_setval('

seq_job

',10);

select

*from t_common_sequence;

mysql 自定義自增序列

公司專案需求需要在一張包含自增主鍵的mysql表中,再次增加乙個自增字段,但是mysql只支援一張表乙個自增字段。create table if not exists sequence name varchar 50 not null,current value int 11 not null,in...

Mysql自定義Sequence 實現序列自增功能

create table sequence name varchar 50 collate utf8 bin not null comment 序列的名字 current value int 11 notnull comment 序列的當前值 increment int 11 notnull def...

mysql自定義函式優點 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...