在DM数据库中,自增有两种方法来实现,第一种是自增列,第二种是通过序列实现。这两个方式各自有各自的个好处,也有适用的场合。

1、自增列介绍

在创建表时可以制定列是否自增,该属性和CREATE TABLE语句一起使用,但是自增列在使用过程中存在较多的限制。

1.1、语法格式:

CREATE TABLE TEST(id int IDENTITY(1,1) primary key, name varchar(32));

1.2、参数介绍:    

种子代表装载到表中的第一个行所使用的值;增量表示增量值,该值被添加到前一个已装载的行

的标识值上。增量值可以为正数或负数,但不能0。

1.3、使用说明:

IDENTITY适用于INT类型和BIGINT类型的列;每个表只能创建一个自增列;不能对自增列使用DEFAULT约束;使用时必须同时指定种子和增量值或都不指定,如果两者都未指定则默认值都是1;最大值和最小值为该列的数据类型的边界;表种子和增量大于最大值或者种子和增量小于最小值时报错;自增列一旦生成法更新,不允许用update语句修改。

1.4、实际案例

create table TEST(id int IDENTITY(1,1) primary key, name varchar(32));

insert into TEST(name) values('AAA'),('BBB'),('CCC');

select * from TEST;

1、序列的介绍

序列是一个数据库实体,通过序列多个用户可以产生唯一整数值,也可以用序列来自动地生成主关键字值,即就是提供一系列连续的数值。

2.1、语法格式:

CREATE SEQUENCE 序列名

[INCREMENT BY n]              --每次增加的值

[START WITH n]                  --初始值,就是产生的第一个值

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --MAXVALUE 定义生成的最大值,MINVALUE定义生成的最小值,NOMAXVALUE代表不设最大的值

[{CYCLE|NOCYCLE}]            --CYCLE代表循环,NOCYCLE代表不循环

[{CACHE n|NOCACHE}];       --CACHE(缓冲)定义存放序列的内存块的大小,NOCACHE表示不对序列进行内存缓冲。

2.2、创建序列:

SQL> CREATE SEQUENCE SEQS

INCREMENT BY 1000

START WITH 5

NOMAXVALUE NOMINVALUE;

2.3、修改序列

--修改序列的步长,原来使1修改为现在的2

ALTER SEQUENCE SEQ1 INCREMENT BY 1 ;

2.5、删除语句

 drop sequence SEQS;

2.6、使用案例

create table CODE(id int primary key, name varchar(32));

insert into CODE values(SEQS.NEXTVAL,'AAA'),(SEQS.NEXTVAL,'BBB'),(SEQS.NEXTVAL,'CCC');

select * from CODE;

达梦云适配中心:http://eco.dameng.com

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐