DM数据库中建表实现主键自增

       在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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值