`
吐蕃无敌土匪
  • 浏览: 6628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 创建自增长订单号

阅读更多
因为最近做项目需要,需要使用到,自定义的不重复的自增长的订单号,在网上找了资料然后又加入了自己的修改,做成的mysql生成订单号的存储过程。
drop PROCEDURE pp;
create procedure PROC_GET_NO (tname varchar(50),cname VARCHAR(50),prefix VARCHAR(20))
   begin
     #最终生成的订单号
    declare order_sn VARCHAR(20);

  #当前系统中的订单号
    declare prev VARCHAR(15);
  
  #旧的日期
    declare prevdatetime VARCHAR(15);

  #截取到的编号
    declare sn BIGINT(15);
  
  #当前的系统时间
    declare nowdate VARCHAR(15);

    # 获得当天的最后一条记录编号 判断数据库中的创建日期是否大于当前日期 也就等于是是否是当天的单据

   set @pre = prefix;
   set @na=tname;
     set @cna = cname;
     set @sql_text:='select MAX(';
   set @sql_text := CONCAT(@sql_text,@cna,') into @recordcount from ');
   set @whe :=' WHERE create_date > CURRENT_DATE()';
     set @sql_text:=concat(@sql_text,@na,@whe);
     prepare stmt from @sql_text;
     execute stmt;
    set prev = @recordcount;
  #截取日期
    select SUBSTR(prev FROM 2 FOR 9) into prevdatetime;

  #截取编号
    select RIGHT(prev,5) into sn;
  #获得当前的时间 使用now()函数 获得的格式是2014-05-28 11:20:18 然后在获取自己想要的数据
    select DATE_FORMAT(NOW(),'%Y%m%d') into nowdate;
    #判断最后一条记录是否为空
    if isnull(prev) then
        select concat(@pre,nowdate,'00001') into order_sn;
            #return order_sn;
        elseif nowdate = prevdatetime then
            select concat(@pre,nowdate,'00001') into order_sn;
            #return order_sn;
        else
        select concat(@pre,prevdatetime,LPAD((sn+1),4,'0'))into order_sn;
        #return order_sn;
        end if;
select order_sn;

     end;
CALL pp('quotation','quotation_no','O')
分享到:
评论

相关推荐

    mysql取得自动增长的主键值

    - **适用场景:** 主键生成、订单号等需要唯一标识的情况。 - **实现方式:** 在创建表时指定某列具有`AUTO_INCREMENT`属性,并设置为主键。 2. **插入记录并获取自增ID:** - **标准方法:** 使用`INSERT`语句...

    mysql5.7-实验操作文档.docx

    ### MySQL 5.7 实验操作文档知识点梳理 #### 一、MySQL 5.7 的安装与配置 **实验目标**:本实验旨在通过详细记录MySQL 5.7的安装步骤,帮助用户顺利完成数据库系统的安装及基本配置。 **实验内容**: 1. **准备...

    MySQL开发案例详解.pdf

    - **订单表(orders)**:包含订单ID(主键,自增长)、订单号、用户ID(外键关联用户表)、商品ID(外键关联商品表)、数量、总价和支付状态等字段。 #### 四、数据操作 1. **插入数据**:使用INSERT语句向表中...

    PHP+MYSQL微信分销平台系统.rar

    6. **订单管理**:订单处理模块包括订单创建、支付状态跟踪、库存更新、发货通知等。系统应提供后台管理界面,让商家能轻松查看和管理所有订单,同时确保订单信息的准确性和安全性。 7. **用户管理**:系统需要一个...

    基于Java的汽车租赁管理系统MySQL数据库SSM框架

    - **订单管理**:支持订单的创建、状态跟踪以及历史订单查询等功能。 - **统计分析**:提供各类报表和图表,帮助管理层了解业务状况。 - **最新通知管理**:管理员可以发布最新通知,及时传达重要信息。 ##### 3. ...

    轻松掌握MySQL函数中的last_insert_id()

    这个函数通常与具有自动增长特性的主键字段一起使用,例如INT类型的`id`字段,当插入新记录时,MySQL会自动为这个字段生成一个新的唯一值。`last_insert_id()` 就是用来获取这个自动增长值的。 在上述例子中,创建...

    MySQL性能优化

    然而,在实际应用过程中,随着数据量的增长和业务复杂度的提高,MySQL数据库可能会出现性能瓶颈问题。为了确保系统的稳定运行与高效响应,对MySQL进行性能优化变得至关重要。本文将详细介绍一些实用的MySQL性能优化...

    delphi环境中自动生成不重复的物流运单号

    我们需要创建一个表,包含至少两个字段:订单ID(主键,确保唯一性)和运单号。主键自动增长的特性可以作为运单号的基础。 2. 运单号生成策略:运单号的生成应确保唯一性和可读性。一种常见的方式是结合日期、...

    基于JSP的自由策划网站管理系统设计与实现(JAVA+MYSQL).docx

    在这里,MYSQL用于存储网站的各种数据,如用户信息、订单记录等。 #### 四、系统架构与功能模块 ##### 1. 前台用户浏览模块 - **用户注册与登录**: 用户可以通过注册账号获得访问权限,并能保存个人信息以便后续...

    淘淘数据库

    - `UPDATE 订单表 SET 状态='已支付' WHERE 订单号='12345'`:将某个订单的状态更改为已支付。 - `DELETE FROM 库存表 WHERE 商品ID='67890'`:移除特定商品的库存记录。 此外,为了确保数据安全和性能优化,你需要...

    mysql表结构设计(数据场景、设计规范、字段属性、表结构管理、数据管理).docx

    在设计表结构时,还需要考虑到字段的约束条件,如非空(`NOT NULL`)、默认值(`DEFAULT`)、自增长(`AUTO_INCREMENT`)等,这些都将直接影响到数据的完整性和一致性。 #### 四、表结构管理 **1、查看结构** 通过`...

    自动跳号的函数和存储过程

    3. MySQL AUTO_INCREMENT:MySQL也提供了类似的特性,即在创建表时定义一个AUTO_INCREMENT列: ```sql CREATE TABLE TableName ( Id INT AUTO_INCREMENT PRIMARY KEY, ... ); ``` 二、存储过程 存储过程是预...

    使用PHP制作电子商务网站1

    - user_id:整型,主键,自增长,用于唯一标识用户。 - user_name:字符串,用于存储用户名,不能为空。 - user_pwd:字符串,用于存储用户密码,不能为空。 - user_date:字符串,用于记录用户注册日期,不能为...

    基于springboot的服装销售平台源码数据库.doc

    - 主键ID (`id`):自增长。 - 用户名 (`username`):唯一,用于登录。 - 密码 (`password`):加密存储。 - 姓名 (`name`)。 - 手机号 (`phone`)。 - 邮箱 (`email`)。 2. **商品表**(`product`): - 主键...

    郑州靓号网红色大气虚拟手机靓号商城网站源码[自适应手机端]带有安装说明.txt

    3. **数据库创建**:在MySQL中创建一个新的数据库,并导入源码中提供的SQL文件以初始化数据表结构。 4. **配置文件设置**:编辑源码中的配置文件(如config.php),填写正确的数据库连接信息和其他必要参数。 5. **...

    4月26号数据库实训9—插入数据

    在 MySQL 命令行中,我们可以使用以下命令来创建数据库: `CREATE DATABASE E_market;` 创建四张表 下一步,我们需要创建四张表:Userinfo、CommoditySort、CommodityInfo 和 OrderInfo。这些表将用于存储会员...

    韩顺平我的购物车开发流程

    数据库层面,Oracle、MySQL或PostgreSQL等关系型数据库常被用来存储用户、商品和订单信息。 总的来说,“我的购物车”开发流程涉及需求分析、数据库设计、界面设计、程序框架选择以及前后端开发等多个环节,需综合...

    项目商城数据库呀同志们

    字段可能有订单号、用户ID、订单状态(待支付、已支付、已发货、已完成等)、下单时间、总价等。订单详情通常另建子表(order_details),存储每个订单中具体商品的信息。 4. **购物车表(shopping_carts)**:用户...

    一个小型在线书店的数据库管理系统

    - **Orders**:记录订单信息,包括订单号、客户ID、下单日期和总价。 - **OrderDetails**:订单详情表,记录每个订单中具体包含哪些书籍及其数量,关联Orders 和 Books。 - **Customers**:存储客户信息,包括客户ID...

Global site tag (gtag.js) - Google Analytics