文档首页 > > 开发指南> SQL参考> SQL语法> ALTER SEQUENCE

ALTER SEQUENCE

分享
更新时间: 2019/06/24 GMT+08:00

功能描述

修改一个现有的序列的参数。

注意事项

  • 使用ALTER SEQUENCE的用户必须是该序列的所有者。
  • 当前版本仅支持修改拥有者和归属列。若要修改其他参数,可以删除重建,并用Setval函数恢复当前值。

语法格式

修改序列归属列

ALTER SEQUENCE [ IF EXISTS ] name 
    [ OWNED BY { table_name.column_name | NONE } ] ;

修改序列的拥有者

ALTER SEQUENCE [ IF EXISTS ] name OWNER TO new_owner;

参数说明

  • name

    将要修改的序列名称。

  • IF EXISTS

    当序列不存在时使用该选项不会出现错误消息,仅有一个通知。

  • OWNED BY

    将序列和一个表的指定字段进行关联。这样,在删除那个字段或其所在表的时候会自动删除已关联的序列。

    如果序列已经和表有关联后,使用这个选项后新的关联关系会覆盖旧的关联。

    关联的表和序列的所有者必须是同一个用户,并且在同一个模式中。

    使用OWNED BY NONE将删除任何已经存在的关联。

  • new_owner

    序列新所有者的用户名。用户要修改序列的所有者,必须是新角色的直接或者间接成员,并且那个角色必须有序列所在模式上的CREATE权限。

示例

--创建一个名为serial的递增序列,从101开始。
CREATE SEQUENCE serial START 101;

--创建一个表,定义默认值。
CREATE TABLE T1(C1 bigint default nextval('serial'));

--将序列serial的归属列变为T1.C1。
ALTER SEQUENCE serial OWNED BY T1.C1;

--删除序列
DROP SEQUENCE serial cascade;
DROP TABLE T1;
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区