当前位置: 首页 > news >正文

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;

相关文章:

  • 特殊运算符详解:身份运算符、成员运算符与三目运算符
  • Ghost-Downloader-3开源下载软件,使用 Python 构建的跨平台 Fluent-Design AI-boost 多线程下载器
  • 使用mybatis实例类和MySQL表的字段不一致怎么办
  • 文件操作--文件下载读取漏洞
  • Fedora升级Google Chrome出现GPG check FAILED问题解决办法
  • 【Linux】关于虚拟机
  • 【AI提示词】奥卡姆剃刀思维模型专家
  • Semantic Kernel 快速入门
  • 神州趣味地名-基于天地图和LeafLet的趣味地名探索
  • C++ 的 lambda 表达式
  • 自制qrcode二维码生成扫码美化
  • 第6篇:EggJS数据库操作与ORM实践
  • 组件通信-props
  • BLE协议栈的解析
  • 4.3 random模块
  • 中小企业MES系统详细设计
  • 低代码/AI是否会取代前端开发?
  • 倒排索引与数据库索引
  • 小刚说C语言刷题—1018三角形类别
  • [预备知识]5. 优化理论(一)
  • 泽连斯基拒绝普京72小时停火提议,坚持应尽快实现30天停火
  • 准80后遵义市自然资源局局长陈清松任仁怀市委副书记、代市长
  • 乌美签署矿产协议
  • 网警查处编造传播“登顶泰山最高可得3万奖金”网络谣言者
  • 过去24小时中美是否就关税问题进行过接触?外交部:没有
  • 国家卫健委有关负责人就白皮书发布答记者问