ubuntu pgadmin如何使用存储过程
导读:Ubuntu 下使用 pgAdmin 管理 PostgreSQL 存储过程 一 环境准备与连接 安装组件:在 Ubuntu 上安装 PostgreSQL 与 pgAdmin4(桌面或 Web 模式均可)。完成后启动数据库服务,并在 pgA...
Ubuntu 下使用 pgAdmin 管理 PostgreSQL 存储过程
一 环境准备与连接
- 安装组件:在 Ubuntu 上安装 PostgreSQL 与 pgAdmin4(桌面或 Web 模式均可)。完成后启动数据库服务,并在 pgAdmin 中新建服务器连接(主机 localhost、端口 5432、用户名 postgres 等)。如需远程管理,可在 PostgreSQL 的配置文件 postgresql.conf 中设置 listen_addresses = ‘*’,在 pg_hba.conf 添加如 host all all 0.0.0.0/0 md5 的认证规则,然后重启数据库服务。以上步骤完成后即可在 pgAdmin 左侧树中浏览数据库对象并执行 SQL。
二 创建与执行存储过程
- 方式一 使用 CREATE PROCEDURE(推荐,PostgreSQL 11+)
- 在 pgAdmin 打开目标数据库的 Query Tool。
- 执行创建语句(示例含 IN/OUT 参数与事务控制):
CREATE OR REPLACE PROCEDURE sp_upsert_user( p_id INTEGER, p_name TEXT, p_out OUT INTEGER ) LANGUAGE plpgsql AS $$ BEGIN INSERT INTO users(id, name) VALUES (p_id, p_name) ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name; GET DIAGNOSTICS p_out = ROW_COUNT; -- 返回受影响行数 END; $$;- 调用方式(在 Query Tool 中执行):
CALL sp_upsert_user(1, 'Alice', NULL); - 方式二 使用 CREATE FUNCTION 模拟“存储过程”
- 无返回值:RETURN void;有返回值:RETURN 具体类型或 SETOF 记录。调用可用 SELECT func(…)。示例:
CREATE OR REPLACE FUNCTION fn_hello(p_name TEXT) RETURNS TEXT LANGUAGE plpgsql AS $$ BEGIN RETURN 'Hello, ' || p_name; END; $$; SELECT fn_hello('Bob'); - 小结对比
- PROCEDURE:使用 CALL 执行,适合事务性批处理;可定义 IN/OUT/INOUT 参数。
- FUNCTION:使用 SELECT 执行,适合有返回值的逻辑;也可用 RETURN void 仅做过程化处理。
三 在 pgAdmin 中查看与维护
- 浏览与编辑:在左侧对象树展开 Schemas → public → Procedures(或 Functions),右键对象可执行 Properties(查看定义)、Edit(在线修改并保存)、Drop(删除)。
- 执行与传参:对 PROCEDURE 右键选择 Execute/Debug 可弹出参数对话框;对 FUNCTION 可直接在 Query Tool 中以 SELECT 方式传参与查看结果。
- 权限与依赖:在对象属性中管理 Owner/ACL;注意修改签名(参数或返回类型)通常需要 DROP + CREATE,并评估对视图、触发器等的依赖影响。
四 调试与定时执行
- 断点调试(pgAdmin 4 调试器)
- 前提:在 postgresql.conf 的 shared_preload_libraries 中加载调试插件(如 plugin_debugger),重启数据库;在目标库执行调试扩展脚本(如 pldbgapi.sql),并确保用于调试的账号具备足够权限。
- 操作:在目标存储过程上右键 Debugging → Debug(直接调试,可设输入参数与断点)或 Set breakpoint(上下文调试,等待应用触发);调试界面支持 Step into/over/continue、变量与调用栈监控。
- 定时执行(pgAgent)
- 在 pgAdmin 中启用 pgAgent 插件,创建 Job → Step → Schedule:Step 中写入 CALL sp_name(…) 或相应 FUNCTION 调用;Schedule 配置周期与起止时间;执行后可在 pgAgent 相关表(如 pga_joblog、pga_jobsteplog)查看运行日志与异常信息。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu pgadmin如何使用存储过程
本文地址: https://pptw.com/jishu/774996.html
