【发布时间】:2011-01-06 22:39:45
【问题描述】:
我有一张桌子
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
结果:
第 0 行:testtable_rid=21 |数据=0
预期结果:
第 0 行:testtable_rid=1 |数据=0
如您所见,序列似乎不受事务回滚的影响。它们继续递增,就好像事务已提交然后该行被删除一样。有什么方法可以防止序列以这种方式表现吗?
【问题讨论】:
标签: postgresql transactions rollback database-sequence