表示例: 其中,name为编号名、value为编号值、next为递增值 2、新建一个事件,定时清空表sequence中的value值 定义: UPDATE sequence SET value=0 WHERE name='trans_no' 计划,设置每天19点01分清零: 3、新建一个函数next_trans_num(),每次递增获取sequence中value值 定义,其中last_insert_id()函数为mysql自带函数,获取该表中最后更新的值,seq_name为函数参数,确定调用哪个生成规则: begin UPDATE sequence SET value=last_insert_id(value+next) WHERE name=seq_name; RETURN last_insert_id(); end 3、再新建一个函数get_trans_num(),获取日期+指定长度序列的编号 定义,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 SELECT get_trans_num(); |
|