【问题标题】:GENERATED BY DEFAULT AS IDENTITY DB2默认生成为 IDENTITY DB2
【发布时间】:2021-07-07 10:12:50
【问题描述】:

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

这正常吗?

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

【问题讨论】:

  • 你的意思是已经插入的 ID 的最大值吗?那些现有的 ID 是生成的吗?
  • 是的,如果我在表上有 ID (7, 9,10),当我插入新行时,我会得到 ID 8。

标签: database db2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 2011-06-20
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多