oracle的序列号(sequence)

Oracle的自增列,要采用序列号(sequence)。php

初始化阶段要手动创建一个sequence,而后插入的时候,还要手动本身去读这个sequence的nextval赋给相关字段,如ID,麻烦的很。好处就是记录插入前,咱们就知道这个ID值了,在处理主从表时,有时还比较方便。但这个对sql server来讲,也不是问题,能够得到的。mysql

oracle这个序列号,还有个高速缓存这么个东东,默认是一次性生成20个,没用完可能就丢了,可能形成ID不连贯。更有甚者,有时可能会引发误解。sql

比如说,我有个存储过程,里面用到了序列号。数据库

而后这个存储过程,既能够手动执行,也能够托付给做业(JOB)执行。由于有高速缓存,做业都是先拿了20个,按照本身的节奏去插入;若是还记录时间戳的话,你会发现,怎么有些ID值小的,其执行时间倒是最新的?缘由即在此,ID与印象中的顺序不符合。缓存

这样的话,ID就失去时间关联的参照属性了,还干脆使用GUID来作主键好了。GUID的话,表跨数据库均可以啊。但SQL SERVER中,好像就没有这个问题。oracle

http://www.woaipu.com/shops/zuzhuan/61406
http://nanning.xjwy.cn/f/bencandy.php?fid=43&id=117777
http://nanning.xjwy.cn/f/bencandy.php?fid=43&id=117890
http://nanning.xjwy.cn/f/bencandy.php?fid=43&id=117994
http://nanning.xjwy.cn/f/bencandy.php?fid=43&id=118376.net

相关文章
相关标签/搜索