默认生成为身份 DB2

GENERATED BY DEFAULT AS IDENTITY DB2

我正在使用 DB2,当我创建 table 时,我使用 GENERATED BY DEFAULT AS IDENTITY 作为主键。 当我在 table 上插入新行时,主键的生成值不是 ID 的最大值。

这正常吗?

生成的数字不重复,但不是最大值。

这种行为是意料之中的。请参阅 CREATE TABLE statement 和 AS IDENTITY 的选项。您可以设置起始值 (START WITH) 以告知 Db2 从特定值开始计数。

数据库系统用于标识列的算法是有一个序列。他们从该序列中获取值。他们不会主动在现有数据中寻找可用值。