PostgreSQL自定义函数
自定义函数
基本语法
//建一个名字为function_name的自定义函数create or replace function function_name() returns data_type as //returns 返回一个data_type数据类型的结果;data_type 是返回的字段的类型;$$ //固定写法......//方法体$$ LANGUAGE SQL; //固定写法-------------------------------CREATE OR REPLACE FUNCTION function_name(args)RETURNS return_type AS $$DECLARE-- 变量声明BEGIN-- 函数体RETURN result;END;$$ LANGUAGE plpgsql;
创建函数
create or replace function add(integer,integer) returns integer as $$ select $1 + $2; $$ LANGUAGE SQL;
- 运行结果
- 调用结果
函数嵌套
CREATE FUNCTION outer_function()RETURNS void AS $$DECLAREFUNCTION inner_function()RETURNS void AS $$-- 内部函数代码$$ LANGUAGE plpgsql;BEGIN-- 外部函数代码inner_function();END;$$ LANGUAGE plpgsql;
递归函数
CREATE FUNCTION recursive_function(arg)RETURNS type AS $$BEGINIF condition THENRETURN arg;ELSERETURN recursive_function(arg + 1);END IF;END;$$ LANGUAGE plpgsql;
删除函数
- 使用
DROP FUNCTION
语句来删除一个或多个函数
DROP FUNCTION function_name(args);
- 如果函数不存在,使用
IF EXISTS
选项不报错
DROP FUNCTION IF EXISTS function_name(args);
- 级联删除
如果其他对象(如视图或触发器)依赖于该函数,可以使用 CASCADE 选项来级联删除这些依赖对象
DROP FUNCTION function_name(args) CASCADE;