Mysql生成序列 拼接字串用於業務主鍵

2021-09-26 14:40:07 字數 1313 閱讀 8203

檢查資料庫是否開啟自定義函式開關

如果value為off     

執行:   set global  log_bin_trust_function_creators=1

1.建立表

create table `sequence` (

`name` varchar(32) not null,

`value` int(6) default null,

`next` int(6) default null,

primary key (`name`)

) engine=innodb default charset=utf8;

insert into `sequence` values ('trans_no', '1', '1');

2.建立函式(

next_trans_num

)獲取序列號

create function next_trans_num(seq_name varchar(20)) returns int(50)

begin

update sequence set value=if(last_insert_id(value+next)>= 999998,0,last_insert_id(value+next)) where name=seq_name; 

return last_insert_id();

end3.拼接業務字首+日期+填充字元--- 建立函式(

get_trans_num)

create function get_trans_num() returns varchar(20) charset utf8

begin

declare getval varchar(24); 

set getval = (select concat('01',date_format(now(), '%y%m%d'),  lpad((select next_trans_num('trans_no')), 4, '0')));

return getval;

end//年月日時分表%y%m%d%h%i%s'

4.查詢即可

select next_trans_num('trans_no')

select get_trans_num();

//刪除函式

drop function get_trans_num

MYSQL字串拼接

一 mysql自帶字串拼接函式 concat 字串拼接 concat ws 指定字串分割拼接字串拼接 語法 concat str1,str2 解釋 concat 拼接 str1和str2字串,省略號.代表可以多個字串拼接 示例 select concat hello word select conc...

mysql字串拼接

concat concat ws group concat 為了方便下面舉例,這裡放個student表供下面使用 s id s name s 01張三男02 李四男03王五男04 趙六null 最常用的字串拼接方法,但遇到拼接中的字串出現null的情況會返回null demo1 mysql sele...

mysql字串拼接

1.concat 2.concat ws 3.group concat 為了方便下面舉例,這裡放個student表供下面使用 s id s name s 01 張三 男 02 李四 男 03 王五 男 04 趙六 null 一 concat 最常用的字串拼接方法,但遇到拼接中的字串出現null的情況...