1. 使用 plpgsql 的调试功能

如果你的函数是用 plpgsql(PostgreSQL 的过程语言)编写的,你可以利用内置的调试功能。这包括使用 RAISE 语句来输出信息,以及设置断点。

CREATE OR REPLACE FUNCTION test_function() RETURNS void AS $$
BEGIN
    RAISE NOTICE 'Starting function';
    -- 你的代码逻辑
    RAISE NOTICE 'Function completed';
END;
$$ LANGUAGE plpgsql;

设置断点

虽然 plpgsql 不像某些高级编程语言那样直接支持断点,但你可以通过在代码中巧妙地放置 RAISE 语句来模拟这一过程:

CREATE OR REPLACE FUNCTION test_function() RETURNS void AS $$
BEGIN
    RAISE NOTICE 'At start';
    -- 你的代码逻辑
    RAISE NOTICE 'Before critical section';
    -- 你的代码逻辑(关键部分)
    RAISE NOTICE 'After critical section';
    -- 你的代码逻辑
    RAISE NOTICE 'Function completed';
END;
$$ LANGUAGE plpgsql;

 

当然我们PostgreSQL 也有相应的函数 RAISE NOTICE 'This is a log %', param;

% 占位符 param 替换的值

do $g$
DECLARE
  v_job_id int := 100;
BEGIN
  RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
END;
$g$;

postgres=# do $g$
postgres$# DECLARE
postgres$#   v_job_id int := 100;
postgres$# BEGIN
postgres$#   RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
postgres$# END;
postgres$# $g$;
NOTICE:  Calling cs_create_job(100)
DO

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐