Mysql實現自增長編號,日期+序列

尐鱼儿發表於2024-08-16

"系統號(字母帶數字)" + get_trans_num()

get_trans_num() 是 mysql 裡的定義函式名。

-- 查詢需要使用者許可權
select * from mysql.proc where name='get_trans_num';

舉例:拼接業務字首+日期+填充字元— 建立函式(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

-- 或者,獲取日期+指定長度序列的編號
-- 定義, DECLARE getval VARCHAR(24),申明變數getval,SET getval =(),將結果賦值給getval:
BEGIN
DECLARE getval VARCHAR(24);
SET getval = (SELECT CONCAT(DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), LPAD((SELECT next_trans_num('trans_no')), 10, '0')));
RETURN getval;
END

相關文章