У меня есть таблица
create table testtable(
testtable_rid serial not null,
data integer not null,
constraint pk_testtable primary key(testtable_rid)
);
Так что скажем, что я делаю этот код примерно 20 раз:
begin;
insert into testtable (data) values (0);
rollback;
а затем я делаю
begin;
insert into testtable (data) values (0);
commit;
И, наконец,
select * from testtable
Result: row0: testtable_rid=21 | data=0 Expected result: row0: testtable_rid=1 | data=0
Как вы можете видеть, на последовательности не влияют откаты транзакций. Они продолжают увеличиваться, как если бы транзакция была совершена, а затем строка была удалена. Есть ли способ предотвратить последовательность действий таким образом?