达梦数据库序列的用法【达梦数据库技术系列】
程序员文章站
2022-06-02 20:05:57
...
序列(sequence)是 达梦数据库中的数据库实体之一。通过使用序列,多个用户可以 产生和使用一组不重复的有序整数值。比如可以用序列来自动地生成主关键字值。序列通过提供唯一数值的顺序表来简化程序设计工作。
当一个序列第一次被查询调用时,它将返回一个预定值,该预定值就是在创建序列时所指定的初始值。默认情况下,对于升序序列,序列的缺省初始值为序列的最小值,对于降序序列,缺省初始值为序列的最大值。可以指定序列能生成的最大值,默认情况下,降序序列的最大值缺省为-1,升序序列的最大值为 263-1; 也可以指定序列能生成的最小值,默认情况下,升序序列的最小值缺省为 1,降序序列的最小值为-263。序列的最大值和最小值可以指定为 longint(4 个字节)所能表示的最大和最小有符号整数;
在随后的每一次查询中,序列将产生一个按其指定的增量增长的值。增量可以是任意的正整数或负整数,但不能为 0。如果此值为负,序列是下降的,如果此值为正,序列是上升的。默认情况下,增加缺省为 1。
【方法】
1. 创建序列
SQL > create sequence s1
start with 1 --开始值
increment by 1 --每次增加多少
maxvalue 200 --最大值
nocache /cache --是否缓存
nocycle/cycle; --是否循环
2. 查询序列状态
SQL> select * from dba_sequences where sequence_name='S1';
3. 创建测试表并测试
SQL> create table t1 (id int primary key);
SQL> insert into t1 values (s1.nextval);
注意:
需要使用下面语句**序列,
SQL> select s1.nextval;
4. 修改序列
SQL> alter sequence s2 maxvalue 50;
SQL> alter sequence s2 minvalue -1000;
5. 删除序列
SQL> drop sequence s2;