达梦数据库修改字段长度_DM7 达梦数据库 序列 和 自增列 说明

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

1 自增列

1.1 创建自增列

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

语法格式https://www.cndba.cn/cndba/dave/article/3590

IDENTITY [ (种子, 增量) ]

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

参数

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

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

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

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

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

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

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

6.自增列一旦生成,无法更新,不允许用 Update 语句进行修改;https://www.cndba.cn/cndba/dave/article/3590

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

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’):返回增量值,该值是在带有自增列的表中创建自增列时指定的。

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 属性: 设置是否允许将显式值插入表的自增列中。

语法格式:

SET IDENTITY_I

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在DM达梦数据库修改字段长度时遇到锁超时的提示,可以尝试以下解决方法: 1. 检查当前锁情况:使用数据库管理工具或者系统提供的相关命令,查看当前是否存在其他事务正在使用或锁定该字段。如果是,请等待其他事务完成或者释放锁。 2. 提前通知相关用户:如果在生产环境中进行修改字段长度的操作,建议提前通知相关用户,确保没有正在进行对该字段的操作。 3. 调整超时时间:可以尝试调整数据库的锁超时时间,将其设置为更长的时间,以便有足够的时间完成字段长度修改操作。 4. 检查索引和约束:在修改字段长度之前,检查是否存在该字段的索引或约束。如果存在,建议先删除相关索引和约束,再进行字段长度修改操作。 5. 分批处理:如果表中的数据量较大,可以考虑将修改字段长度的操作分批进行,每次处理一部分数据,以减少对表的锁定时间。 6. 优化查询语句:在进行字段长度修改操作时,可以通过优化查询语句、减少事务执行时间等方式来尽量缩短锁定时间。 7. 联系技术支持:如果以上方法无效或者不适用,建议联系DM达梦数据库的技术支持团队,向他们咨询具体的解决方案。 请注意,在进行任何数据库操作之前,请务必备份数据,以防止意外情况发生。希望这些方法对您有帮助,如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值