You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找数据库中创建的存储过程列表?需编辑但仅能看到函数

查找并编辑PostgreSQL中的存储过程

筛选存储过程的SQL语句

你当前的SQL会返回public schema下所有函数和存储过程,因为PostgreSQL中两者都存在于pg_proc系统表。要单独筛选存储过程,只需添加prokind = 'p'的条件:

SELECT proname 
FROM pg_proc 
WHERE pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')
  AND prokind = 'p';

其中prokind字段用于区分对象类型:

  • f = 普通函数(FUNCTION)
  • p = 存储过程(PROCEDURE)

为什么存储过程没出现在函数列表里

多数数据库GUI工具(比如pgAdmin)会把函数和存储过程分成两个独立的菜单:

  • 函数(Functions):仅显示prokind = 'f'的对象
  • 存储过程(Procedures):单独显示prokind = 'p'的对象

你需要在工具的对应分类下找到存储过程,而非在函数列表里查找。

编辑存储过程的方法

用SQL语句修改

如果要修改存储过程的逻辑,可以使用ALTER PROCEDURE(需匹配原参数定义):

ALTER PROCEDURE public.your_procedure_name(参数类型列表)
LANGUAGE plpgsql
AS $$
-- 这里写修改后的存储过程代码
$$;

如果需要修改参数个数、类型或其他无法通过ALTER调整的属性,需先删除再重新创建:

DROP PROCEDURE IF EXISTS public.your_procedure_name(参数类型列表);
CREATE PROCEDURE public.your_procedure_name(新参数列表)
LANGUAGE plpgsql
AS $$
-- 新的存储过程逻辑
$$;

内容的提问来源于stack exchange,提问作者MASHHOUR ALHARTHI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:22:15