《PostgreSQL服务器编程》一一3.4 返回记录

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介:

本节书摘来自华章计算机《PostgreSQL服务器编程》一书中的第3章,第3.4节,作者:(美)Hannu Krosing, Jim Mlodgenski, Kirk Roybal 著
,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 返回记录

到目前为止,我们所有的函数例子都描述了RETURN子句中的一个简单的标量值。对于更为复杂的返回类型,我们有几种选择。其中一种选择就是按照表定义返回一组记录。就本例而言,我们假设,你正在开发一个大型的软件开发升级过程,该程序使用了一个名称/值对的表结构来进行设置存储。要求你改变表结构,从键和分值栏改变到一系列的列,此时列的名称就是键的名称。顺便提一句,在你所部署的每个软件版本中,你都需要保存设置。
通过查看现有表中的CREATE TABLE语句,我们发现:
image

当你对表运行了一个select语句,你会发现并没有太多的设置,但这些设置已有不少版本,为此你需要创建一个更加明确的新表。
image

通过将设置数据转化成新的格式,我们可以实现一个insert语句和一个函数。该函数能够迅速地以新的表格式返回我们的数据。
我们继续定义函数:
image
image
image
image

上面的函数向调用查询返回了一个简单的数据行。该行包括了所有设置,这些设置之前被定义为键/值对,但是现在是明确的字段。通过改善函数和最终表,我们可以将设置的数据类型改得更加明确。但是,我只是一个作者,并不是“真正”的开发者,所以我把那个留给你吧!
接下来,使用函数进行转变:
image

大功告成!你可以在新的表结构中找到这些以表格形式展现的数据。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
SQL 关系型数据库 数据库
PostgreSQL 12 文档: 部分 V. 服务器编程
部分 V. 服务器编程 这部分关于使用用户定义的函数、数据类型、触发器等扩展服务器功能。这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题。这一部分的后面一些章节描述PostgreSQL发布中可用的服务器端编程语言,以及与服务器端编程语言相关的一般性问题。在深入研究服务器端编程语言的材料之前,请至少阅读第 37 章中前几节(覆盖函数)。
84 0
|
SQL 数据可视化 关系型数据库
PostgreSQL踩坑小记录
PostgreSQL写同比
178 0
PostgreSQL踩坑小记录
|
关系型数据库 数据库 PostgreSQL
开发踩坑记录之三:PostgreSQL数据库表唯一性约束失效
在设计数据库表过程中,我们通常会对数据库表进行唯一性约束,以防止事务不一致导致的相同数据的重复插入问题。但是在实际开发中发现,即使设置了数据库表的唯一性约束,仍然出现了相同数据重复插入的问题。
|
关系型数据库 PostgreSQL
PostgreSQL 随机记录返回 - 300倍提速实践 (随机数组下标代替order by random())
标签 PostgreSQL , 数组 , 随机 , order by random() 背景 在业务系统中,有些场景会用到随机返回的功能,例如论坛,有很多帖子(比如有100万贴),有些是精华帖(比如有5万贴),为了让精华帖可以均衡的被访问,需要将5万贴随机的分页返回给用户。
1680 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL技术周刊第13期:PSQL新增变量记录SQL语句的执行情况和错误
PostgreSQL(简称PG)的开发者们:云栖社区已有5000位PG开发者,发布了3000+PG文章(文章列表),沉淀了700+的PG精品问答(问答列表)。 PostgreSQL技术周刊会为大家介绍最新的PG技术与动态、预告活动、最热问答、直播教程等,欢迎大家订阅PostgreSQL技术周刊。
2907 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 11 新特性解读 : psql 新增变量记录SQL语句的执行情况和错误
PostgreSQL 11 版本新增加 ERROR、SQLSTATE、ROW_COUNT、LAST_ERROR_MESSAGE、LAST_ERROR_SQLSTATE 五个变量用来记录SQL语句的执行结果状态和错误信息。
3773 0
|
关系型数据库 PostgreSQL 存储