GaussDB A (DWS) sequence 序列使用注意事项(持续更新)

举报
进击的白金之星 发表于 2021/04/06 15:51:24 2021/04/06
【摘要】 高斯 sequence 使用心得体会,产品文档的补充

查看库内所有sequence

 SELECT * FROM pg_class c WHERE c.relkind = 'S' and relname ='serial';

Sequence 赋权的使用注意事项:

  1. 关联具体表的sequence,不能将owner 权限赋予其他用户。

案例:

CREATE TABLE test.customer_address

(

    ca_address_sk             integer               not null,

    ca_address_id             char(16)              not null,

    ca_street_number          char(10)                      ,

    ca_street_name            varchar(60)                   ,

    ca_street_type            char(15)                      ,

    ca_suite_number           char(10)                      ,

    ca_city                   varchar(60)                   ,

    ca_county                 varchar(30)                   ,

    ca_state                  char(2)                       ,

    ca_zip                    char(10)                      ,

    ca_country                varchar(20)                   ,

    ca_gmt_offset             decimal(5,2)                  ,

    ca_location_type          char(20)                    

) ;

 

CREATE SEQUENCE test.serial1

 START 101

 CACHE 20

OWNED BY test.customer_address.ca_address_sk;

 alter SEQUENCE test.serial1 OWNER TO cbgdm_w;

2.关联的用户的new_owner 必须是间接或者直接用户

所谓直接用户和间接用户:

grant cbgdm_w to disapp;
这样cbgdm_w就是disapp的直接成员;
grant cbgdm_w to cbgdm_etl
这样cbgdm_w就是cbgdm_etl的直接成员,cbgdm_etl是disapp的间接成员。

即就是要继承祖先角色的权限。不然会报错

3.间接用户、直接用户必须是同一逻辑集群

如果cbgdm_w 与 cbgdm_etl 不在同一个逻辑集群。配置直接用户,间接用户的时候会报错。

4.创建 Sequence 如果带了cache ,新旧用户nextval的时候会有不同

例子:

CREATE SEQUENCE test.serial1

 START 101

 CACHE 20

比如 旧用户 查询时结果是

SELECT nextval('test.serial1');

结果:

101

新用户的查询的结果是

 SELECT nextval('test.serial1');

结果:

121

5.Sequence 转换owner 之后, 旧owner 可以执行,但不能删除

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。