您可以使用 MODIFY 子句来复位 SERIAL 或 BIGSERIAL 或 SERIAL8 列的下一个值。不能将 下一个值设置为低于列中的当前最大值,因为该操作可导致数据库服务器生成重复数值。然而可将 下一个值设置为任何高于当前最大值的值,这将在一系列值中创建间隔。
如果您指定的新顺序值小于顺序列中当前的最大值,则该最大值将保持不变。如果最大值小于您指 定的值,那么下一个顺序数值将是您指定的值。在以下两种情况中,下一个顺序值不会大于该列中 的最大顺序值:
⚫ 当创建表(或是通过先前的 ALTER TABLE 语句创建)时,表中没有任何行,而且指定 了一个初始的顺序值。
⚫ 表中有行,但是前一个 ALTER TABLE 语句修改了下一个顺序值。
以下示例将下一个顺序值设置为 1000 :
ALTER TABLE my_table MODIFY (serial_num SERIAL (1000));
作为备选方法,您可使用 INSERT 语句,在列中一系列顺序值中创建间隔。有关更多信息,请参 阅 将值插入到串行列之内 。