Det er muligt at fortsætte, hvis fejlen var inde i et SAVEPOINT . Her er et eksempel i psql:
# create temporary table foo (i int primary key);
CREATE TABLE
Start en transaktion og indsæt en række:
# begin;
BEGIN
# insert into foo values(1);
INSERT 0 1
Start et lagringspunkt, indsæt den samme række to gange. Dette vil forårsage en fejl:
# savepoint bar;
SAVEPOINT
# insert into foo values(2);
INSERT 0 1
# insert into foo values(2);
ERROR: duplicate key value violates unique constraint "foo_pkey"
Rul tilbage til lagringspunktet, og indsæt derefter en anden række.
# rollback to savepoint bar;
ROLLBACK
# insert into foo values(3);
INSERT 0 1
Forpligt dig og se, hvad der er der:
# commit;
COMMIT
# select * from foo;
i
---
1
3
(2 rows)