本节书摘来自华章计算机《PostgreSQL服务器编程》一书中的第3章,第3.4节,作者:(美)Hannu Krosing, Jim Mlodgenski, Kirk Roybal 著
,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.4 返回记录
到目前为止,我们所有的函数例子都描述了RETURN子句中的一个简单的标量值。对于更为复杂的返回类型,我们有几种选择。其中一种选择就是按照表定义返回一组记录。就本例而言,我们假设,你正在开发一个大型的软件开发升级过程,该程序使用了一个名称/值对的表结构来进行设置存储。要求你改变表结构,从键和分值栏改变到一系列的列,此时列的名称就是键的名称。顺便提一句,在你所部署的每个软件版本中,你都需要保存设置。
通过查看现有表中的CREATE TABLE语句,我们发现:
当你对表运行了一个select语句,你会发现并没有太多的设置,但这些设置已有不少版本,为此你需要创建一个更加明确的新表。
通过将设置数据转化成新的格式,我们可以实现一个insert语句和一个函数。该函数能够迅速地以新的表格式返回我们的数据。
我们继续定义函数:
上面的函数向调用查询返回了一个简单的数据行。该行包括了所有设置,这些设置之前被定义为键/值对,但是现在是明确的字段。通过改善函数和最终表,我们可以将设置的数据类型改得更加明确。但是,我只是一个作者,并不是“真正”的开发者,所以我把那个留给你吧!
接下来,使用函数进行转变:
大功告成!你可以在新的表结构中找到这些以表格形式展现的数据。