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引用:
网友评论