自增属性,我所了解的数据库中都有。使用自增属性,尤其是做为主键来讲,避免手动管理主键的复杂性,支持高效的数据插入和排序操作(因为自增属性本身就是有序的)。
达梦数据库中自增属性的实现,可以通过以下几种方式来实现:
create table test_auto(id bigint IDENTITY(1,1),name char(10));
insert into test_auto(name) values('abc');
commit;
select * from test_auto; //可以看到id是自增输入的一
行号 ID NAME
---------- -------------------- ----------
1 1 abc
已用时间: 2.488(毫秒). 执行号:5107.
SQL> select IDENT_SEED('TEST_AUTO'); //起始值
行号 IDENT_SEED('TEST_AUTO')
---------- -----------------------
1 1
已用时间: 1.698(毫秒). 执行号:5108.
SQL> select IDENT_INCR('TEST_AUTO'); //步长
行号 IDENT_INCR('TEST_AUTO')
---------- -----------------------
1 1
已用时间: 1.103(毫秒). 执行号:5109.
SQL> select IDENT_CURRENT('TEST_AUTO'); //当前值,下一个值+1
行号 IDENT_CURRENT('TEST_AUTO')
---------- --------------------------
1 1
已用时间: 1.341(毫秒). 执行号:5110.
SQL> create table t_auto(id int AUTO_INCREMENT primary key ,name char(10));
操作已执行
已用时间: 7.758(毫秒). 执行号:5116.
SQL> insert into t_auto(name) values('abc');
影响行数 1
已用时间: 0.981(毫秒). 执行号:5117.
SQL> commit;
操作已执行
已用时间: 1.382(毫秒). 执行号:5118.
SQL> select * from t_auto;
行号 ID NAME
---------- ----------- ----------
1 1 abc
已用时间: 1.598(毫秒). 执行号:5119.
SQL>
和AUTO_INCREMENT自增列有关的参数:AUTO_INCREMENT_OFFSET、AUTO_INCREMENT_INCREMENT、NO_AUTO_VALUE_ON_ZERO。
如何查看它的下一个值呢?
再留一个小小的问题:
如果自增想使用序列值可以么? 大家感兴趣的话,可以试试。。
以上内容为个人对达梦学习的初步认知,受限于视角与经验,不足之处恳请指正。
文章
阅读量
获赞
