On Fri, 2024-02-02 at 02:04 -0800, Nikolay Samokhvalov wrote: > On Thu, Feb 1, 2024 at 04:42 Laurenz Albe <laurenz.albe@xxxxxxxxxxx> wrote: > > Today, the only feasible solution is not to create more than 64 subtransactions > > (savepoints or PL/pgSQL EXCEPTION clauses) per transaction. > > I think 64+ nesting level is quite rare It doesn't have to be 64 *nested* subtransactions. This is enough: CREATE TABLE tab (x integer); DO $$DECLARE i integer; BEGIN FOR i IN 1..70 LOOP BEGIN INSERT INTO tab VALUES (i); EXCEPTION WHEN unique_violation THEN NULL; -- ignore END; END LOOP; END;$$; Yours, Laurenz Albe