linux中数据库创建表要求id自增,DM7 达梦数据库 序列 和 自增列 说明

在DM 数据库中,自增有两种方法实现,一种是自增列,另一种通过序列实现。

1 自增列

1.1 创建自增列

在创建表时可以制定列是否自增。 一个表只能有一个自增列。

https://www.cndba.cn/dave/article/3590

语法格式

1.种子:装载到表中的第一个行所使用的值;

2.增量:增量值,该值被添加到前一个已装载的行的标识值上。增量值可以为正数或负数,但不能为 0。

使用说明

https://www.cndba.cn/dave/article/3590

1.IDENTITY 适用于 int(-2147483648~+2147483647)、bigint(-2^63~+2^63-2)类型的列;每个表只能创建一个自增列;

2.不能对自增列使用 DEFAULT 约束;

3.必须同时指定种子和增量值,或者二者都不指定。如果二者都未指定,则取默认值(1,1);若种子或增量为小数类型,报错;

4.最大值和最小值为该列的数据类型的边界;

5.建表种子和增量大于最大值或者种子和增量小于最小值时报错;

6.自增列一旦生成,无法更新,不允许用 Update 语句进行修改;

临时表、列存储表、水平分区表、垂直分区表不支持使用自增列。

SQL> create table HuaiNing(id int identity,name varchar(20));

executed successfully

used time: 6.902(ms). Execute id is 551.

SQL>

SQL> desc huaining

LINEID NAME TYPE$ NULLABLE

---------- ---- ----------- --------

1 ID INTEGER N

2 NAME VARCHAR(20) Y

used time: 12.016(ms). Execute id is 552.

SQL>

1.2 自增列查询函数

1)IDENT_SEED (‘tablename’) : 返回种子值,该值是在带有自增列的表中创建自增列时指定的。

SQL> select ident_seed('CNDBA.HUAINING');

LINEID IDENT_SEED('CNDBA.HUAINING')

---------- ----------------------------

1 1

used time: 2.280(ms). Execute id is 553.

SQL>

2)IDENT_INCR (‘tablename’):返回增量值,该值是在带有自增列的表中创建自增列时指定的。https://www.cndba.cn/dave/article/3590

SQL> select ident_incr('CNDBA.HUAINING');

LINEID IDENT_INCR('CNDBA.HUAINING')

---------- ----------------------------

1 1

used time: 2.114(ms). Execute id is 555.

SQL>

3)SET IDENTITY_INSERT 属性: 设置是否允许将显式值插入表的自增列中。

语法格式:

https://www.cndba.cn/dave/article/3590

SET IDENTIT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值