我有一个表,其中主键使用序列填充。当前版本:
CREATE SEQUENCE xxxx.SEQ_xyz
START WITH 135
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;
有一个应用程序可以从表中删除某些行。当发生这种情况时,我想获得下一个可用的数字而不是序列显示的数字。说我插入: 136 x 137 y 138 z
所以序列现在是139.如果我删除136,137,138,我希望序列回到136而不是停留在139.这可能吗?
提前感谢。
答案 0 :(得分:2)
你的问题的答案是,在每个行触发器上写一个删除,它将用“start with”条目替换序列,该条目将被删除。但这会产生很多问题,如Shannon Severance所提到的。 例如136被删除,触发器替换旧序列,现在序列以136开头。您将能够插入带有主键的内容为136,但下次您尝试在表中插入数据时,您将不会能够插入它,因为它会违反主键约束(表格中有137,138)
我没有看到任何理由为什么你要回到以前删除的没有。在你的序列中。你能详细说明吗?