使用postgre的存储过程生成自定义订单号
CREATE OR REPLACE FUNCTION get_order_no(tname VARCHAR,cname VARCHAR,cprefix VARCHAR)
RETURNS VARCHAR
AS
$$
DECLARE
--当前的订单号
now_order_no VARCHAR;
--存储当前日期
now_day VARCHAR;
--新的订单号
new_order_no VARCHAR;
--旧的时间
old_date VARCHAR;
--旧的订单编号
old_order_no BIGINT;
--新的订单编号
order_no VARCHAR;
BEGIN
EXECUTE 'SELECT MAX ('||cname||') FROM '||tname||' WHERE booking_time > CURRENT_DATE' INTO now_order_no;
--通过截取 获得订单号中的日期
old_date = substr(now_order_no,1,8);
--通过截取获得旧的订单编号
old_order_no = substr(now_order_no,10,5);
--当前日期
now_day = to_char(CURRENT_DATE,'yyyyMMdd');
--如果没有获得大于当前日期的订单 则从新插入
IF now_order_no is NULL THEN
new_order_no = cprefix || now_day || '00001';
RETURN new_order_no;
--如果 查询的时间 等于当前时间
ELSEIF old_date != now_day THEN
new_order_no = cprefix || now_day || '00001';
RETURN new_order_no;
ELSE
order_no= cast(old_order_no+1 as varchar);
order_no = LPAD(order_no,5,'0');
new_order_no = cprefix || now_day || order_no;
RETURN new_order_no;
END IF;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;
分享到:
相关推荐
PostgreSQL是一种功能强大的开源关系型数据库管理系统,广泛用于企业级数据存储和管理。要实现PostgreSQL数据库的远程连接,你需要进行一系列的配置步骤,确保数据库服务器允许来自不同网络的连接请求。下面将详细...
3. **复杂查询支持**:支持SQL标准的子查询、连接查询、窗口函数以及自定义聚合函数,满足复杂的数据分析需求。 4. **数据类型丰富**:除了常见的数据类型,还支持JSON、XML、数组、几何对象等复杂类型,适合处理...
QGIS软件连接Postgre数据库截图操作
Postgre SQL 数据库安全防护知识点 Postgre SQL 数据库安全防护是指对 Postgre SQL 数据库实施的一系列安全保护措施,以防止数据库泄露事件的发生。以下是相关知识点: 一、Postgre SQL 数据库安全防护机制 * MD5...
### Postgre数据库学习知识点 #### 一、PostgreSQL简介与安装 **PostgreSQL**是一款功能强大的开源对象关系型数据库系统,以其稳定性、可扩展性以及遵循SQL标准而著称。根据给定的学习文档,我们可以了解到关于...
而"Postgre自动生成代码"指的是利用特定的工具或框架,自动化生成与PostgreSQL数据库相关的Java代码,如MyBatis的XML配置、DAO层、Service层以及DTO对象,以减少手动编写这些重复性工作的时间和出错概率。...
postgre数据库自动备份操作教程.pdf
标题中的“代码自动生成_连接数据库生成entity(可自定义)_oracle”指的是一个特定的工具或框架,它能够自动化地从Oracle数据库中抽取结构信息,并根据这些信息生成对应的实体类(Entity)代码。Entity在对象关系映射...
在VC++环境中,访问数据库是一项常见的任务,而“VC访问PostgreSQL数据库”涉及的技术主要集中在如何利用Microsoft Visual C++(VC)与PostgreSQL数据库进行交互。在这个程序中,两种主要的访问方式被提及:一是使用...
2. 使用`psql`命令连接到PostgreSQL数据库。 3. 使用`ALTER USER postgres WITH PASSWORD ;`命令修改PostgreSQL密码, `<new_password>`为新密码。 4. 使用`\q`命令退出PostgreSQL命令行。 5. 使用`exit`命令退出...
Postgres 代码生成器是一种工具,它能够帮助开发者快速构建基于PostgreSQL数据库的应用程序。这个工具的核心功能是自动生成3层架构的代码,这通常包括数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI)或前端接口...
在现代数据库管理中,数据备份和恢复是至关重要的操作,它们确保了数据在系统故障、灾难事故或其他意外情况下的安全性和可用性。PostgreSQL,作为一种流行的开源对象关系数据库系统,它为用户提供了多种工具和方法来...
《全面解析:功能强大的数据库连接软件A5》 在当今数字化时代,数据库管理扮演着至关重要的角色,而高效、易用的数据库连接工具是每个IT专业人员不可或缺的武器。A5,这款在日本广受欢迎的数据库连接软件,因其强大...
易语言源码 Postgre SQL 连接池。基于 http://www.sanye.cx/?id=12020 的源码 二次开发...封装了一些高级方法..包括,连接池+查询缓存+不知道真假的储存过程+慢查询记录。使用源码使用了E2EE支持库(模块部分思路借鉴...
在了解了Postgre的Copy,unlogged table 特性 之后,决定一探究竟。 二、测试用例 1.数据表结构:表示一个员工工作绩效的表(work_test):共15个字段id,no,name,sex,tel,address,provice,city,post,mobile,department...
【标题】"mybatis - 代码生成(postgresql\mysql)" 涉及到的是MyBatis框架在数据库代码自动化生成方面的应用,针对PostgreSQL和MySQL两大主流关系型数据库。这个话题涵盖了数据库的逆向工程,以及生成的各类Java...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它以其强大的功能、高度的可扩展性和稳定性而受到全球开发者的广泛使用。在进行基于Qt Creator的软件开发时,与PostgreSQL数据库的交互通常需要借助特定...
最近学习Postgre SQL数据库,找了很久也没有找到使用libpq.dll的模块,这里自己按照资料写了一个,写得不好,权当抛砖引玉了哈。顺便说下:Postgre SQL号称是最先进的开源数据库,确实不是盖的,在我使用来看确实比...
截取json将之装换成uuid,uuid作为唯一标识符,可以做排重处理,删除重复值。
为了提高SQL查询的灵活性与复用性,许多数据库系统提供了创建自定义函数的功能,使得用户可以根据特定需求编写个性化的数据处理逻辑。本文将通过一个具体的例子来探讨自定义函数在SQL中的应用。 #### 二、自定义...