postgresql 日期生成流水号
--表结构
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 日期生成流水号的更多相关文章
- java,mysql触发器,redis生成流水号(yyyyMM000)
最近又遇到需要根据日期生成流水号的业务,然后记录了几种生成方法,一个是通过java代码,一个是数据库的触发器,还有是通过redis.下面是代码: 通过java生成简易流水: /** * 通过日期和生成 ...
- BarTender怎样同时打印自动日期和流水号?
大多数条形码中都会含有日期和数量信息,而且大部分都是两者兼具.有些使用BarTender软件的小伙伴,不知道怎么同时打印自动日期和流水号,即条形码中兼有自动日期和序列号,且它们都能根据打印的变化而变化 ...
- Oracle生成流水号函数
一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...
- java中生成流水号的一个例子(使用关系型数据库)
在实际的开发中,可能会有根据一定的规则生成流水号的需求(比如根据根据公司编码和日期生成4位流水号)我们可以把公司和日期联合起来作为一个业务编码,把这个业务编码和序列的值存储到数据库中,每次需要生成流水 ...
- Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用
Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...
- log4net使用(包括单个文件和按日期生成多个文件)
1.log4net生成单个文件 直接将这段代码考到config中即可用 <log4net> <!--定义输出到文件中--> <appender name="Lo ...
- Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用
Default.aspx 网页界面 <%@ Page Language="C#" AutoE ...
- SQL Server 存储过程生成流水号
SQL Server利用存储过程生成流水号 USE BiddingConfig SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO -- =========== ...
- powerdesigner连接postgresql数据库生成pdm及word文档
1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...
随机推荐
- python大法好——mysql防注入
MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...
- mysql 数据插入时的问题
问题:在实现json串插入到数据库的时候发现中文utf-8传入的.但到数据中的时候反斜杠\就不见了,导致后面显示的时候也不能正常显示. 解决方法:comment=comment.replace(&qu ...
- thinkphp5.1明明密码的一致的 却说不一致的解决办法
protected $rule = [ 'password|密码'=>[ 'require', 'length:6,2 ...
- 如何解决 快速点击多次触发的bug 期望快速点击只一次生效
var lastClick; lockClick(){ var nowClick = new Date(); if (lastClick === undefined) { lastClick = no ...
- ArcGIS按选定线分割面-案例教程
ArcGIS按选定线分割面-案例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能 方法:高级编辑 实例: 分割前后 联系方式:谢老师,135-4855-43 ...
- 有关Linux ipv6模块加载失败的问题
有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载. 主要检查内容: ...
- shell 启动和停止脚本
启动脚本 start_kmeans_v3.sh #!/bin/bash #用于kmeans_data_v3_hadle启动 ps -ef | grep kmeans_data_v3_hadle.py ...
- Linux中文乱码 - - 更改Linux字符集
查看当前系统默认采用的字符集: # locale 在RedHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如 ...
- spring cloud Ribbon
参考:https://www.jianshu.com/p/1bd66db5dc46 Ribbon 是什么 spring cloud ribbon 是一个基于HTTP 和 TCP 的客户端负载均衡工具, ...
- springboot+dubbo修改扫描路径引起端口占用的问题
因为在多模块项目中引入了spring security,消费方(控制层)的工程有两个包,一个controller,一个config.引入之前消费方工程的application.properties中s ...