On 04/09/2023 11:51 CEST Lorusso Domenico <domenico.l76@xxxxxxxxx> wrote: > I can't use the savepoint and rollback to savepoint clause. > I've found some similar problems around on the web, but I can't catch the > good way to proceed. > > What I'm trying to do is: > * compare new set of attribute with older > * if some attributes are part of old set and not in the new one: delete > the old > * but if parameter "on_misisng_delete" is false rollback delete command > and rais exception > The original code in embedded in a function, but the problem is the same: Transaction control is not possible in functions. Only in procedures (CALL) and DO blocks. > ERROR: syntax error at or near "to" > LINE 41: rollback to savepoint deleteAttribute; Use BEGIN ... EXCEPTION ... END instead of manual savepoints. [1] [1] https://www.postgresql.org/docs/current/plpgsql-porting.html#PLPGSQL-PORTING-EXCEPTIONS -- Erik