云数据库 GAUSSDB-CREATE SEQUENCE:参数说明
参数说明
- LARGE | TEMPORARY | TEMP
临时序列关键字。
- 创建临时序列需要数据库启用PG兼容。
- 临时序列的生命周期是会话级的,临时序列对象是会话隔离的。序列在会话退出后会自动删除清理。
- 临时序列存在于一个特殊的模式中,每个会话有且仅有一个临时模式,若提前创建了临时模式,则在创建临时序列时可给出模式名,若未提前创建,则在创建临时序列时不能给出模式名,并且每个会话只能访问自己的临时模式中的对象,无法访问其他会话的临时模式中的对象。如果访问的临时模式不属于本会话,会报告错误。
- 当临时序列存在时,已有的同名永久序列(在这个会话中) 会变得不可见,不过可以用模式限定的名称来引用同名永久序列。
- IF NOT EXISTS
如果指定IF NOT EXISTS关键字,创建序列前会在当前SCHEMA中查找是否已有名字相同的relation。若已有同名relation存在,则不会新建,返回NOTICE提示。未指定IF NOT EXISTS关键字时,若SCHEMA中存在同名relation,返回ERROR告警。
- name
将要创建的序列名称。
取值范围: 仅可以使用小写字母(a~z)、 大写字母(A~Z)、数字和特殊字符“#” 、“_”、“$”的组合。
- increment
可选。指定序列的步长。一个正数将生成一个递增的序列,一个负数将生成一个递减的序列。
缺省值为1。
在B兼容模式下,步长为浮点数时会自动转为整型。其他模式下,该参数不支持输入浮点数。
- MINVALUE minvalue | NO MINVALUE| NOMINVALUE
可选。执行序列的最小值。如果没有声明minvalue或者声明了NO MINVALUE,则递增序列的缺省值为1,递减序列的缺省值为-263-1。NOMINVALUE等价于NO MINVALUE。
- MAXVALUE maxvalue | NO MAXVALUE| NOMAXVALUE
可选。执行序列的最大值。如果没有声明maxvalue或者声明了NO MAXVALUE,则递增序列的缺省值为263-1,递减序列的缺省值为-1。NOMAXVALUE等价于NO MAXVALUE。
- start
可选。指定序列的起始值。缺省值:对于递增序列为minvalue,递减序列为maxvalue。
- cache
可选。为了快速访问,而在内存中预先存储序列号的个数。
缺省值为1,表示一次只能生成一个值,也就是没有缓存。
不建议同时定义cache和maxvalue或minvalue。因为定义cache后不能保证序列的连续性,可能会产生空洞,造成序列号段浪费。
- [ NO ] CYCLE | NOCYCLE
可选。用于使序列达到maxvalue或者minvalue后可循环并继续下去。
如果声明了NO CYCLE,则在序列达到其最大值后任何对nextval的调用都会返回一个错误。
- NOCYCLE的作用等价于NO CYCLE。缺省值为NO CYCLE。
- 若定义序列为CYCLE,则不能保证序列的唯一性。
- OWNED BY
可选。将序列和一个表的指定字段进行关联。这样,在删除该字段或其所在表的时候会自动删除已关联的序列。关联的表和序列的所有者必须是同一个用户,并且在同一个模式中。需要注意的是,通过指定OWNED BY,仅仅是建立了表的对应列和SEQUENCE之间关联关系,并不会在插入数据时在该列上产生自增序列。
缺省值为OWNED BY NONE,表示不存在这样的关联。
通过OWNED BY创建的SEQUENCE不建议用于其他表,如果希望多个表共享SEQUENCE,该SEQUENCE不应该从属于特定表。