Sequence是一个数据库对象,多个用户可以从中生成唯一的整数,可以使用序列自动生成主键值。
生成序列号时,序列号将递增,独立于事务提交或回滚;
如果两个用户同时递增同一序列,因为序列号是由另一个用户生成的,每个用户获得的序列号可能存在间隙,一个用户永远无法获取另一个用户生成的序列号。一个用户生成序列值后,该用户可以继续访问该值,而不管序列是否由另一个用户递增;
序列号是独立于表生成的,因此同一序列可以用于一个或多个表。个别序列号可能会被跳过,因为事务最终回滚。此外的用户可能不会意识到其他用户也正在从同一序列中绘制。
创建序列
CREATE SEQUENCE name
[ INCREMENT BY increment ]
[ { NOMINVALUE | MINVALUE minvalue } ]
[ { NOMAXVALUE | MAXVALUE maxvalue } ]
[ START WITH start ]
[ CACHE cache | NOCACHE ]