PostgreSQL – 函数
PostgreSQL – 函数
PostgreSQL函数,也称为存储过程,允许您在数据库中的单个函数中执行通常需要多次查询和往返的操作。函数允许重用数据库,因为其他应用程序可以直接与您的存储过程交互,而不是中间层或重复代码。
可以使用您选择的语言(如 SQL、PL/pgSQL、C、Python 等)创建函数。
句法
创建函数的基本语法如下 –
CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $variable_name$ DECLARE declaration; [...] BEGIN < function_body > [...] RETURN { variable_name | value } END; LANGUAGE plpgsql;
在哪里,
-
function-name指定函数的名称。
-
[OR REPLACE] 选项允许修改现有函数。
-
该函数必须包含一个return语句。
-
RETURN子句指定要从函数返回的数据类型。所述return_datatype可以是碱,复合材料,或域类型,或者可以引用一个表列的类型。
-
函数体包含可执行部分。
-
AS 关键字用于创建独立函数。
-
plpgsql是函数实现的语言名称。这里,我们对PostgreSQL使用这个选项,它可以是SQL、C、internal,也可以是用户自定义的过程语言的名称。为了向后兼容,名称可以用单引号括起来。
例子
以下示例说明了创建和调用独立函数。此函数返回 COMPANY 表中的记录总数。我们将使用COMPANY表,其中包含以下记录 –
testdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
函数 totalRecords() 如下 –
CREATE OR REPLACE FUNCTION totalRecords () RETURNS integer AS $total$ declare total integer; BEGIN SELECT count(*) into total FROM COMPANY; RETURN total; END; $total$ LANGUAGE plpgsql;
执行上述查询时,结果将是 –
testdb# CREATE FUNCTION
现在,让我们执行对该函数的调用并检查 COMPANY 表中的记录
testdb=# select totalRecords();
执行上述查询时,结果将是 –
totalrecords -------------- 7 (1 row)