у меня есть стол
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
Как видите, откаты транзакций не зависят от последовательности. Они продолжают увеличиваться, как если бы транзакция была зафиксирована, а затем строка была удалена. Есть ли какой-нибудь способ предотвратить такое поведение последовательностей?