--表结构
DROP TABLE if exists public.sys_tabid;
CREATE TABLE public.sys_tabid
(
id serial NOT NULL ,
type character varying(50),
code character varying(50) NOT NULL,
seed integer,
date date
);
--测试数据
insert into sys_tabid(type,code,seed,date) values
('订单PO','',1,'2017-06-27'),
('仓库','',1,'2017-06-27'),
('入库PO','',1,'2017-06-27'); --公共函数
CREATE OR REPLACE FUNCTION public.p_sys_getid(
p_type character varying DEFAULT '仓库'::character varying,
p_seed integer DEFAULT 1)
RETURNS integer AS
$BODY$
DECLARE
--SET NOCOUNT ON;
DECLARE
v_d date := now()::date;
v_code INT := 0;
v_rowcount INTEGER; BEGIN
-- select * from p_sys_getid();
<<tran>>
loop
<<TRY>>
loop
--IF NOT EXISTS(SELECT 1 FROM [Sys_TabID] WITH(ROWLOCK) WHERE [type]=@type AND [date]=@d) IF NOT EXISTS(SELECT 1 FROM Sys_TabID WHERE type = p_type AND date=v_d) then
INSERT INTO Sys_TabID(type,code,seed,date) values(p_type,'',p_seed,v_d);
GET DIAGNOSTICS v_rowcount = ROW_COUNT;
end if; IF v_rowcount > 0 then
v_code=1;
exit tran;
END IF; select code::int+seed::int from Sys_TabID into v_code WHERE type = p_type AND date = v_d;
UPDATE Sys_TabID SET code = v_code WHERE type = p_type AND date = v_d;
GET DIAGNOSTICS v_rowcount = ROW_COUNT;
IF v_rowcount>0 then
exit tran;
end if; exit TRY;
exit tran; END LOOP;
END LOOP; RETURN v_code; END;
$BODY$
LANGUAGE plpgsql --查询函数
CREATE OR REPLACE FUNCTION public.select_tlsh(
letter character varying DEFAULT 'DGR'::character varying,
p_type character varying DEFAULT '订单PO'::character varying)
RETURNS character varying AS
$BODY$
DECLARE
--letter varchar(10)='DGR';
id int;
TLSH VARCHAR(20);
BEGIN
select * from P_Sys_GetID(p_type,1) into id;
TLSH = letter||to_char(now()::timestamp,'YYYYMMDD')||right((1000000+id)::varchar,6);
RETURN TLSH;
END;
$BODY$
LANGUAGE plpgsql

postgresql 日期生成流水号的更多相关文章

  1. java,mysql触发器,redis生成流水号(yyyyMM000)

    最近又遇到需要根据日期生成流水号的业务,然后记录了几种生成方法,一个是通过java代码,一个是数据库的触发器,还有是通过redis.下面是代码: 通过java生成简易流水: /** * 通过日期和生成 ...

  2. BarTender怎样同时打印自动日期和流水号?

    大多数条形码中都会含有日期和数量信息,而且大部分都是两者兼具.有些使用BarTender软件的小伙伴,不知道怎么同时打印自动日期和流水号,即条形码中兼有自动日期和序列号,且它们都能根据打印的变化而变化 ...

  3. Oracle生成流水号函数

    一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...

  4. java中生成流水号的一个例子(使用关系型数据库)

    在实际的开发中,可能会有根据一定的规则生成流水号的需求(比如根据根据公司编码和日期生成4位流水号)我们可以把公司和日期联合起来作为一个业务编码,把这个业务编码和序列的值存储到数据库中,每次需要生成流水 ...

  5. Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用

                                             Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...

  6. log4net使用(包括单个文件和按日期生成多个文件)

    1.log4net生成单个文件 直接将这段代码考到config中即可用 <log4net> <!--定义输出到文件中--> <appender name="Lo ...

  7. Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用

                                             Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...

  8. SQL Server 存储过程生成流水号

    SQL Server利用存储过程生成流水号 USE BiddingConfig SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO -- =========== ...

  9. powerdesigner连接postgresql数据库生成pdm及word文档

    1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...

随机推荐

  1. python大法好——mysql防注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  2. mysql 数据插入时的问题

    问题:在实现json串插入到数据库的时候发现中文utf-8传入的.但到数据中的时候反斜杠\就不见了,导致后面显示的时候也不能正常显示. 解决方法:comment=comment.replace(&qu ...

  3. thinkphp5.1明明密码的一致的 却说不一致的解决办法

    protected $rule = [       'password|密码'=>[                       'require',           'length:6,2 ...

  4. 如何解决 快速点击多次触发的bug 期望快速点击只一次生效

    var lastClick; lockClick(){ var nowClick = new Date(); if (lastClick === undefined) { lastClick = no ...

  5. ArcGIS按选定线分割面-案例教程

    ArcGIS按选定线分割面-案例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能 方法:高级编辑 实例: 分割前后 联系方式:谢老师,135-4855-43 ...

  6. 有关Linux ipv6模块加载失败的问题

    有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载.     主要检查内容:   ...

  7. shell 启动和停止脚本

    启动脚本 start_kmeans_v3.sh #!/bin/bash #用于kmeans_data_v3_hadle启动 ps -ef | grep kmeans_data_v3_hadle.py ...

  8. Linux中文乱码 - - 更改Linux字符集

     查看当前系统默认采用的字符集: # locale 在RedHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如 ...

  9. spring cloud Ribbon

    参考:https://www.jianshu.com/p/1bd66db5dc46 Ribbon 是什么 spring cloud ribbon 是一个基于HTTP 和 TCP 的客户端负载均衡工具, ...

  10. springboot+dubbo修改扫描路径引起端口占用的问题

    因为在多模块项目中引入了spring security,消费方(控制层)的工程有两个包,一个controller,一个config.引入之前消费方工程的application.properties中s ...