【发布时间】:2013-02-06 03:49:50
【问题描述】:
要重置 Oracle 序列,我遵循以下临时方法。比方说,我有一个名为 TEMP_TABLE 的表,并有一个与之关联的序列。
以下 SQL 生成 22 作为序列下一个值(仅在这种情况下)。
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
以下语句将缓存大小减小到SEQUENCE.MINVALUE。
ALTER SEQUENCE TEMP_TABLE_SEQ INCREMENT BY -21;
接下来,我正在执行一个虚拟选择,检索 1 作为序列值。
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
我现在将缓存大小重置为 1。
ALTER SEQUENCE TEMP_TABLE_SEQ INCREMENT BY 1;
所以下面的语句,
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
给我 2 作为下一个序列值,依此类推。
在 PostgreSQL 服务器中,以下仅一条语句就足以重置序列。
ALTER SEQUENCE TEMP_TABLE_SEQ RESTART WITH 0;
Oracle (10g) 中是否有这种公平的方式来重置序列?
【问题讨论】: