建立流水號

2021-10-01 23:37:31 字數 1313 閱讀 8742

delimiter $$

useppd-sit$$

drop procedure if existscreateorderno$$

create definer=root@%procedurecreateorderno(outnewordernochar(15))

begin

declare currentdate char (8) ;-- 定義currentdate為當前日期,格式為:年+月+日

declare maxno int default 0 ; – 定義maxno為離現在最近的滿足條件的訂單編號的流水號最後5位,如:2018042600002的maxno=2

declare oldorderno char (15) default 『』 ;-- 定義oldorderno為離現在最近的訂單編號,預設為空

declare neworderno char (15) default 『』 ;-- 定義neworderno為新生成的訂單編號,預設為空

select date_format(now(), 『%y%m%d』) into currentdate ;-- 當前日期 訂單編號形式:年月日+流水號,如:2018042600002

/* 從test_orders表中查出最新一條記錄賦值給oldorderno */

select ifnull(order_no, 『』) into oldorderno – ifnull(expr1,expr2),接收兩個引數,如果不是null,則返回第乙個,如果是null,返回第二個

from course_order

where to_days(create_time) = to_days(now())

order by id desc limit 1 ; – 有多條時只顯示離現在最近的一條

if oldorderno != 『』 then

set maxno = convert(substring(oldorderno, -5), decimal) ;-- substring(oldorderno, -5):訂單編號如果不為『『擷取訂單的最後5位

end if ;

select

concat(『od』,currentdate, lpad((maxno + 1), 5, 『0』)) into neworderno ; – lpad((maxno + 1), 5, 『0』):如果不足5位,將用0填充左邊

select neworderno;

end$$

delimiter ;

mysql 觸發器流水號 建立生成流水號的觸發器

create table test id varchar 18 流水號,日期 8位 時間 4位 流水號 4位 name varchar 10 其他字段 go 建立生成流水號的觸發器 create trigger t insert on test instead of insert asdeclare...

SQL生成流水號

經過了幾次的測試終於成功了 declare year int,month int,day int,temp no varchar 12 needno varchar 4 no varchar 20 number varchar 50 randno varchar 50 nu varchar 10 s...

php生成流水號

function createn i else if i 100 else if i 1000 else echo substr 2012050010 0,6 echo createn 2 2 echo createn 9 9 echo createn 10 10 echo createn 11 1...