首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql SKU生成器

Postgresql SKU生成器
EN

Stack Overflow用户
提问于 2020-11-12 03:09:43
回答 1查看 223关注 0票数 0

我正在寻找SKU生成器的功能,以生成SKU基于产品名称,组合字母和5位数字唯一号码在Postgresql。

例如:

代码语言:javascript
复制
generate_sku('GREENFIELDS FULL CREAM MILK')

将只返回3个首字和随机数:

代码语言:javascript
复制
GRE-FUL-CRE-987652

知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-13 22:44:45

按照建议创建一个序列。因为您有一个特定的值范围,所以限制序列的范围。然后创建一个函数,它接受一个参数,名称,并返回SKU。见小提琴

代码语言:javascript
复制
create sequence sku_seq
       as         integer
       increment  1
       start with 10000
       minvalue   10000
       maxvalue   99999
       no cycle; 
       
 
create or replace 
function item_sku(item_name_in text)
  returns  text 
  language sql 
  immutable strict
as $$
with parm (snam) as 
     ( select string_to_array(item_name_in, ' '))
select sku || to_char(nextval('sku_seq'),'FM99999')
  from ( select case 
                when array_length(snam,1)  > 2  
                     then substr(snam[1],1,3) ||'_' ||
                          substr(snam[2],1,3) ||'_' ||
                          substr(snam[3],1,3) ||'_' 
                when array_length(snam,1)  = 2 
                     then substr(snam[1],1,3) ||'_' ||
                          substr(snam[2],1,3) ||'_' 
                else substr(snam[1],1,3) || '_'
                end sku
         from parm
       ) s ;
$$;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64797336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档