rollback previous commit if the current one fails - Mailing list pgsql-general

From pinker
Subject rollback previous commit if the current one fails
Date
Msg-id 1618302562353-0.post@n3.nabble.com
Whole thread Raw
Responses Re: rollback previous commit if the current one fails  (luis.roberto@siscobra.com.br)
List pgsql-general
Hi,
i need to emulate oracle's savepoint behaviour inside of the plpgsql
function.

This function is able to insert all the rows that weren't caught on the
exception, but i need also to rollback the insert that happens before the
exception.

So let's say the exception is thrown when j=3 so i need also to rollback
j=2.
Any idea how to approach it?

DROP TABLE IF EXISTS test;
CREATE TABLE test
(
    id INT
);

CREATE OR REPLACE PROCEDURE test()
AS
$$
DECLARE
    j INT;
BEGIN

    FOR j IN 0..6
        LOOP
            BEGIN
                INSERT INTO test VALUES (1 / j);
            EXCEPTION
                WHEN OTHERS THEN
            END;
        END LOOP;
END;
$$ LANGUAGE plpgsql;

CALL test();
TABLE test;



--
Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html



pgsql-general by date:

Previous
From: "LE MENTEC, SANDRINE"
Date:
Subject: looking for a installation package to Using GSSAPI with Postgres12 for windows
Next
From: Ma Xinjian
Date:
Subject: "missing chunk number 0 for toast value xxx in pg_toast_xxx" when pg_basebackup