DB2 中 ROW-ID 和 SEQUENCE 的用途


问题:如何在 DB2 列中为每插入的新行自动生成唯一值?

解决方案

我们可以通过在 DB2 表中实现一种逻辑,使其中一列在插入每行新数据时自动生成值。此列可以用作主键,因此对于 DB2 表的随机访问非常有用。此逻辑可以通过 ROW-ID 和 SEQUENCE 来实现。

可以将 DB2 表的任何一列定义为 ROW-ID 类型,之后 DB2 将自动为插入的行分配一个新 ID。分配的 ID 在整个表中保持唯一。SEQUENCE 也可以用于实现此目的。在使用 SEQUENCE 的情况下,DB2 为行分配的 ID 在整个数据库中都是唯一的,而不仅仅是单个表。

示例

ROW-ID

如果我们将 ORDERS DB2 表的 ORDER_ID 列声明为 ROW-ID,则 DB2 将根据为每插入到此表的新行定义的条件自动生成 ORDER_ID 列的唯一值。ROW-ID 定义的列将具有在整个表中唯一的数值。


SEQUENCE

如果我们有一个包含 4 个表的 DB2 数据库。每个表分别存储来自南北东西四个地区的订单详细信息。每个表的 ORDER_ID 列可以标记为 SEQUENCE。DB2 将为这些表中插入的每一行新数据分配 ORDER_ID 列的唯一值,并且分配的值在整个数据库中将保持唯一。

更新于:2020年11月30日

浏览量 1K+

开启您的职业生涯

完成课程获得认证

开始学习
广告