DB2 Sequences vs. Identity Columns

Although sequences and identity columns seem to serve similar purposes for DB2® applications, there is an important difference. An identity column automatically generates values for a column in a single table using the LOAD utility. A sequence generates sequential values upon request that can be used in any SQL statement using the CREATE SEQUENCE statement.

创建方式

创建Sequence
创建Identity Column

具体应用

Identity列用来唯一确定数据库表中的一行记录。

Sequence用于生成唯一值。


其他比较

1. 它们都支持设置起始值,最大值,增量。Sequence还可以设置是否可以循环使用,缓存等。比如第一次生成Sequence值时,数据库管理系统可以连续生成20个(默认),并缓存下来。之后再次请求新Sequence时,可以直接返回。20个都返回之后,再生成下一批,如80到100。不过如果中间数据库系统DOWN掉,那么重启后再次请求序列时,仍然从80开始,中间的缓存值会丢掉。

2. Identity列只限于当前一个表;而Sequence是可以跨表的。并且可以通过PREVIOUS VALUE得到Sequence的上一个值。在多个表通过使用同一个Sequence值的时候很方便。不过有可能在往下一表中通过PREVIOUS SEQUENCE插入上一个值的时候,很可能Sequence值已经改变。要当心。

3. 可以通过程序控制Sequence生成。

values取Sequence下一个值
next value
previous value


引用:

DB2 Sequence

你可能感兴趣的:(DB2 Sequences vs. Identity Columns)