Có thể tiếp tục nếu lỗi xảy ra bên trong SAVEPOINT . Đây là một ví dụ trong psql:
# create temporary table foo (i int primary key);
CREATE TABLE
Bắt đầu giao dịch và chèn một hàng:
# begin;
BEGIN
# insert into foo values(1);
INSERT 0 1
Bắt đầu một điểm lưu, chèn cùng một hàng hai lần. Điều này sẽ gây ra lỗi:
# 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"
Quay lại điểm lưu, sau đó chèn một hàng khác.
# rollback to savepoint bar;
ROLLBACK
# insert into foo values(3);
INSERT 0 1
Cam kết và xem những gì ở đó:
# commit;
COMMIT
# select * from foo;
i
---
1
3
(2 rows)