CREATE [ OR REPLACE ] FUNCTION function_name ( [parameter_name data_type [, ...]] )
RETURNS return_type
[ LANGUAGE language_name ]
[ VOLATILE | STABLE | IMMUTABLE ]
[ AS $$
DECLARE
-- Declarations and code go here
BEGIN
-- Function body goes here
END;
$$ ];
其中:
- OR REPLACE: 可选部分,用于替换同名函数(如果存在)。
- function_name: 函数的名称。
- ( [parameter_name data_type [, ...]] ): 函数的参数列表,包括参数名和数据类型。
- RETURNS return_type: 指定函数的返回类型。
- LANGUAGE language_name: 指定函数的编程语言,默认为 SQL。
- VOLATILE | STABLE | IMMUTABLE: 指定函数的不同性质,影响查询优化和缓存。
- AS $$ ... $$: 函数体的起始和结束标记,函数体中包含函数的实际逻辑。
以下是一个简单的示例,创建一个名为 "add_numbers" 的函数,用于将两个整数相加:
CREATE OR REPLACE FUNCTION add_numbers(a INTEGER, b INTEGER)
RETURNS INTEGER
AS $$
DECLARE
result INTEGER;
BEGIN
result := a + b;
RETURN result;
END;
$$
LANGUAGE PLPGSQL;
在上述示例中,add_numbers 是函数的名称,接受两个整数参数,并返回一个整数。函数体使用 PL/pgSQL 语言编写。
请注意,创建函数的权限通常需要数据库管理员权限。在实际使用中,你需要根据函数的具体逻辑和用途来定义参数、返回类型和函数体。
转载请注明出处:http://www.zyzy.cn/article/detail/8661/PostgreSQL