ALTER SEQUENCE name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ] [ OWNED BY { table.column | NONE } ] ALTER SEQUENCE name SET SCHEMA new_schema
ALTER SEQUENCE 命令修改一个现有的序列发生器的参数。任何没有明确在 ALTER SEQUENCE 命令里声明的参数都将保留原先的设置。
要使用 ALTER SEQUENCE ,你必须拥有该序列。要改变一个序列的模式,你必须在新模式上有 CREATE 权限。
一个要修改的序列的名字(可以有模式修饰)
INCREMENT BY increment 子句是可选的。一个正数会让序列成为递增序列,负数则成为递减序列。如果没有声明,将沿用原来的递增值。
可选的 MINVALUE minvalue 子句决定一个序列可以生成的最小的值。如果声明了 NO MINVALUE ,那么将使用缺省值,对于递增和递减的序列分别是 1 和 -263-1 。如果没有声明则沿用当前的最小值。
可选的 MAXVALUE maxvalue 子句决定一个序列可以生成的最大的值。如果声明了 NO MAXVALUE 那么将使用缺省值,对于递增和递减的序列分别是 263-1 和 -1 。如果没有声明则沿用当前的最大值。
可选的 RESTART WITH start 子句修改序列的当前值。
CACHE cache 选项打开序列号预分配功能以及在内存中缓冲存储的功能。最小值 1 表示每次只能生成一个数值,没有缓冲。如果没有声明,将沿用旧的缓冲值。
可选的键字 CYCLE 可以用于允许序列在达到 maxvalue 或 minvalue 的时候循环使用。如果达到了极限,那么生成的下一个数字将分别是 minvalue 或 maxvalue
如果声明了可选键字 NO CYCLE ,任何在序列达到其极限后对 nextval
的调用都将返回错误。如果未声明 CYCLE 或 NO CYCLE ,那么将沿用原有的循环行为。
OWNED BY 选项将序列和一个表的特定字段关联,这样,如果那个字段(或整个表)被删除了,那么序列也将被自动删除。指定的新关联将覆盖旧有的关联。指定的表必须与序列的属主相同并且在同一个模式中。指定 OWNED BY NONE 将删除任何已经存在的关联,也就是让该序列变成"独立"序列。
序列的新模式