• Mysql存储过程生成指定格式的订单号


    Mysql存储过程和函数可以理解为一段SQL的集合,它们被事先编译好并且存储在数据库中。

    基本语法:

    创建:

     create procedure 存储过程名(参数列表) 其他修饰符 存储过程体

    调用:

     call 存储过程名(参数列表)

    以下是使用Mysql存储过程生成指定格式的订单号:

     1 drop procedure if exists `add_repair`;
     2 delimiter //
     3 create definer=`root`@`192.168.1.243` procedure `add_repair`(in n int)
     4 begin
     5     declare i int default 0;
     6 
     7     -- 订单编号
     8     declare orderNamePre varchar(25) default 'WX'; -- 订单格式,开头符号
     9     declare currentDate varchar(255);
    10     declare maxNO int default 0;
    11     declare oldOrderNo varchar(255) default '';
    12     declare newOrderNo varchar(255) default '';
    13 
    14     -- 订单编号操作
    15     select date_format(now(), '%Y%m%d') into currentDate;    
    16     
    17     -- 如果当日已有历史订单,截取相应数据存入变量
    18     select ifnull(bill_number,'') into oldOrderNo from repair_bill
    19     where substring(bill_number, 3, 8)=currentDate 
    20         and substring(bill_number,1,2) = orderNamePre
    21     order by id desc limit 1;
    22     
    23     if oldOrderNo != '' then
    24         set maxNO=convert(substring(oldOrderNo,-5),decimal);
    25     end if;
    26     
    27     -- 向表repair_bill插入数据:生成维修单
    28     select concat(orderNamePre, currentDate, lpad((maxNO+1),5,'0')) into newOrderNo;
    29 
    30     insert into repair_bill (bill_number,...) values (newOrderNo,...);
    31     set maxNo = maxNo + 1;
    32     set i = i + 1;
    33     end while;
    34 end //
    35 delimiter ;
    36 
    37 call add_repair(1);

  • 相关阅读:
    【Rust】文件操作
    【Rust】转义字符
    【Rust】原始标识符
    【Rust】字节数组
    【Rust】文档测试
    【Rust】外部函数接口
    【Rust】不安全操作
    【Rust】单元测试
    【Rust】集成测试
    WPF之ComboBox 安静点
  • 原文地址:https://www.cnblogs.com/leihaha/p/8403897.html
Copyright © 2020-2023  润新知