我正试图了解PGSQL中的异常处理,但...
案例1:
CREATE OR REPLACE PROCEDURE ins ()
AS $$ DECLARE
i INT;
BEGIN
insert into scott.emp (empno) values (9000);
commit;
i:=1/0;
EXCEPTION WHEN OTHERS THEN
--rollback;
END $$ LANGUAGE plpgsql;
call ins();
我想这是插入行,但不是
案例2:
CREATE OR REPLACE PROCEDURE ins ()
AS $$ DECLARE
i INT;
BEGIN
insert into scott.emp (empno) values (9000);
commit;
--i:=1/0;
EXCEPTION WHEN OTHERS THEN
--rollback;
END $$ LANGUAGE plpgsql;
call ins();
现在,没有div被零除,但是表中没有行
案例3:
CREATE OR REPLACE PROCEDURE ins ()
AS $$ DECLARE
i INT;
BEGIN
insert into scott.emp (empno) values (9000);
commit;
--i:=1/0;
--EXCEPTION WHEN OTHERS THEN
--rollback;
END $$ LANGUAGE plpgsql;
call ins();
现在插入行。似乎Problen是我的异常块,但为什么呢?
谢谢。马可]
我试图理解PGSQL中的异常处理,但是...情况1:创建或替换过程ins()AS $$ DECLARE i INT;将BEGIN插入scott.emp(empno)值(9000);承诺; i:= 1/0; ...
毫无意义地抛出错误消息确实会使调试困难。