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 $$
	DECLARE
	  FUNCTION inner_function()
	  RETURNS void AS $$
	  -- 内部函数代码
	  $$ LANGUAGE plpgsql;
	  BEGIN
	    -- 外部函数代码
	    inner_function();
	  END;
	$$ LANGUAGE plpgsql;

递归函数

	CREATE FUNCTION recursive_function(arg)
	RETURNS type AS $$
	BEGIN
	  IF condition THEN
	    RETURN arg;
	  ELSE
	    RETURN 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜逼の世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值