myql存储过程生成订单号
来源:互联网 发布:java如何创建对象数组 编辑:程序博客网 时间:2024/05/24 01:06
DELIMITER $$USE `roamerbuddy`$$DROP PROCEDURE IF EXISTS `GENERATE_ORDERNO`$$CREATE DEFINER=`root`@`%` PROCEDURE `generate_orderNo`(IN orderNamePre CHAR(2), IN num INT, OUT newOrderNo VARCHAR(25))BEGIN DECLARE currentDate VARCHAR (15) ;-- 当前日期,有可能包含时分秒 DECLARE maxNo INT DEFAULT 0 ; -- 离现在最近的满足条件的订单编号的流水号最后5位,如:SH2013011000002的maxNo=2 -- DECLARE l_orderNo varCHAR (25) ;-- 新生成的订单编号 -- DECLARE oldDate DATE ;-- 离现在最近的满足条件的订单编号的日期 DECLARE oldOrderNo VARCHAR (25) DEFAULT '' ;-- 离现在最近的满足条件的订单编号 IF num = 8 THEN -- 根据年月日生成订单编号 SELECT DATE_FORMAT(NOW(), '%Y%m%d') INTO currentDate ;-- 订单编号形式:前缀+年月日+流水号,如:SH2013011000002 ELSEIF num = 14 THEN -- 根据年月日时分秒生成订单编号 SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') INTO currentDate ; -- 订单编号形式:前缀+年月日时分秒+流水号,如:SH2013011010050700001,个人不推荐使用这种方法生成流水号 ELSE -- 根据年月日时分生成订单编号 SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i') INTO currentDate ;-- 订单形式:前缀+年月日时分+流水号,如:SH20130110100900005 END IF ; SELECT IFNULL(BANKORDER, '') INTO oldOrderNo FROM rc_bank_details WHERE SUBSTRING(BANKORDER, 2, num) = currentDate --验证当天的时间 ORDER BY id DESC LIMIT 1 ; -- 有多条时只显示离现在最近的一条 IF oldOrderNo != '' THEN SET maxNo = CONVERT(SUBSTRING(oldOrderNo, -6), DECIMAL) ;-- SUBSTRING(oldOrderNo, -6):订单编号如果不为‘‘截取订单的最后6位 END IF ; SELECT CONCAT(orderNamePre, currentDate, LPAD((maxNo + 1), 6, '0')) INTO newOrderNo ; -- LPAD((maxNo + 1), 6, '0'):如果不足6位,将用0填充左边 -- INSERT INTO test_orders (orderNo, orderName) VALUES (newOrderNo, 'testNo') ; -- 向订单表中插入数据 -- set newOrderNo = l_orderNo; SELECT newOrderNo ; END$$DELIMITER ;
CALL `generate_orderNo`('S', 8, @orderNo);
1 0
- myql存储过程生成订单号
- 存储过程生成订单号
- myql 存储过程
- SLQ生成订单号 序列码 流水号的存储过程
- 用mysql的存储过程实现生成唯一订单号
- 通过存储过程解决并发生成唯一订单号
- Mysql 存储过程生成订单号,解决分布式问题
- MySQL存储过程和代码分别生成订单号,MySQL拾遗
- 生成订单号
- 生成订单号
- 订单号生成
- 订单号生成
- 生成订单号
- 生成订单号
- myql存储对象
- SQL Server生成订单号
- 自动生成采购订单号
- 订单号的生成方法
- Linux ELF文件学习
- GeoHash核心原理解析
- MFC 改变子对话框大小
- 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
- 分支-02. 三角形判断(15)
- myql存储过程生成订单号
- (三十三)Xcode项目的重要工程文件
- 下拉树comboxTree
- SetTimer函数
- R.java常见问题解决方案
- Console 控制台的应用
- 动态规划入门例子
- LBS定位技术
- 使用DirectSound时引用dsound.h报错