AdvancedAdvanced PostgreSQL

Savepoints in Transactions

The query

SQL
BEGIN;
INSERT INTO logs (msg) VALUES ('step 1');
SAVEPOINT sp1;

INSERT INTO logs (msg) VALUES ('step 2');
ROLLBACK TO SAVEPOINT sp1; -- Undoes step 2 only

COMMIT;
Tested against PostgreSQL 16

Note

Savepoints allow partial rollbacks within a larger transaction without aborting the entire transaction.