**
商户流水号和订单号生成方法-带序列号
每次在对接支付平台,第三方收单接口和小程序时,需要用到订单号或者商户流水号来检验唯一性,一般前缀+日期+随机数+后缀格式,自动生成;虽然能保证唯一性,但看上去特别凌乱,今天介绍一种通过数据库使用序列来生成规则且唯一的订单号和商户流水号。
第一步:当然这里说了介绍通过数据库序列来生成,前提是先得搞一个数据库,首先创建一个序列,
1、plsql中设置方法。
2、sql语句创建
– Create sequence
create sequence SYS.ORDER_SERIAL_FID --序列名称
minvalue 1 --最小值
maxvalue 99999 --最大值
start with 610 --开始于
increment by 1 --增量
cache 100 --缓存
cycle; --循环
第二步:确定是否需要前缀、后缀、日期格式和序列位数。
前缀:60001-
后缀:X
日期:20191211(根据需求来定,可能部分穿透数据需要用到时分秒)
序列数:五位
第三步:制定好规则后就可编写sql查询了。
–sql查询
select ‘60001-’||trim(TO_CHAR(SYSDATE ,‘YYYYMMDD’))||LPAD(ORDER_SERIAL_FID.NEXTVAL, 5, 0)||‘X’ as order_id from dual;
第五步:也可将sql封装成函数,方便查询
创建函数方法
–sql
create or replace function getOrderSerial return varchar as
order_id varchar2(20) := ‘60001-’||trim(TO_CHAR(SYSDATE ,‘YYYYMMDD’))||LPAD(ORDER_SERIAL_FID.NEXTVAL, 5, 0)||‘X’;
begin
return order_id;
end getOrderSerial;
查询sql
select getOrderSerial() from dual;
结果集