db2中的自动增量

时间:2016-01-24 04:12:56

标签: sql db2

我已经创建了一个表,它自动递增以100开头的增量为100的id值,但是在1000之后插入下一个数据时它跳转到2000,它应该是1100.

这是语法:

create table student(  
id int not null generated always as identity(start with 100, increment by 100),  
name varchar(30),  
primary key(id)  
)

1 个答案:

答案 0 :(得分:0)

我假设在您看到ID值为2000之前重新激活了数据库。出于性能原因,标识了列和序列的值。标识列的默认值为"cache 20"

当缓存中填充了一大块新值时,下一个基本行将保留在DB2目录中。当数据库被取消激活(关闭,最后一次连接关闭)时,所有缓存也会被销毁。在需要下一个ID值时重新连接到数据库后,DB2首先查找现有缓存,然后从目录中检索最后一个基线。在你的情况下,这将是2000(20 * 100)。