我在oracle db中有一个表。该表总是包含大量行,比如数十万行。我在该表中设置了一个id并使用了一个序列和一个触发器,这样每次插入记录时都会自动生成并插入id。现在,在通过java代码遍历现有行时,有时可以截断该表中的数据并插入新行。在这种情况下,我希望序列在表为空时从1开始重新开始。
序列看起来像
CREATE SEQUENCE DUMMY_DETAILS_SEQ
START WITH 356005
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER;
答案 0 :(得分:0)
如果表变空并且您需要重置序列,则必须删除它然后重新创建它。使用接收表名,表ID字段和序列名称的过程来执行此操作。
此外,您可以找到当前值并使用增量减去负值,然后将其重置为零。
alter sequence seq increment by -inc_value minvalue 0;