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 列的唯一值,并且分配的值在整个数据库中将保持唯一。
广告