Sql db2中的自动增量

Sql db2中的自动增量,sql,db2,Sql,Db2,我创建了一个表,它自动递增id值,从100开始,递增100,但在插入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) ) 我假设数据库在您看到2000的ID值之前被重新激活。出于性能原因,

我创建了一个表,它自动递增id值,从100开始,递增100,但在插入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)  
)

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


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

我应该添加什么语法来运行?1000->1100,但不是2000。缓存(10)?这将是
无缓存
。有关语法选项,请参见上面的链接文档。缓存后的数字确定缓存的值的数量,并且您不希望有任何间隙。但它可能会对性能产生影响。