oracle的序列号(sequence)

摘要:
Oracle的自动递增列应使用序列号。在初始化阶段,需要手动创建序列,然后在插入序列时手动读取分配给相关字段(如ID)的序列的nextval。这很麻烦。但是,这对于SQL Server来说不是问题,可以获得。oracle的序列号也有缓存。默认情况下,一次生成20个。如果没有用完,它们可能会丢失,这可能会导致ID不一致。此外,有时这可能会引起误解。例如,我有一个使用序列号的存储过程。原因是ID与印象中的顺序不匹配。

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

初始化阶段要手动建立一个sequence,然后插入的时候,还要手动自己去读这个sequence的nextval赋给相关字段,如ID,麻烦的很。好处就是记录插入前,我们就知道这个ID值了,在处理主从表时,有时还比较方便。但这个对sql server来说,也不是问题,可以获得的。

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

好比说,我有个存储过程,里面用到了序列号。

然后这个存储过程,既可以手动执行,也可以托付给作业(JOB)执行。因为有高速缓存,作业都是先拿了20个,按照自己的节奏去插入;如果还记录时间戳的话,你会发现,怎么有些ID值小的,其执行时间却是最新的?原因即在此,ID与印象中的顺序不符合。

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

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

免责声明:文章转载自《oracle的序列号(sequence)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WinForm 中 comboBox控件之数据绑定plsql 导出查询结果下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法

原因如下: 你oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。 而一旦你和我同事一样,有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题。如下图       如下是解决思路: 根据出错信息判断出客户端未监听...

dapper之连接数据库(Oracle,SQL Server,MySql)

  因为项目需求,需要项目同时可以访问三个数据库,因此本人经过一番研究,得出以下代码。    1.建立公共连接抽象类(DataBase) 1 public abstract class DataBase 2 { 3 /// <summary> 4 /// 5 ///...

oracle中取得当前日期,前一天,当前月,前一个月

  当前日:select TRUNC(SYSDATE)  from dual;   前一天: select TRUNC(SYSDATE - 1)   from dual; 前一天转换为日期格式: select to_char(TRUNC(sysdate-1),'fmdd')   from dual; to_char(TRUNC(sysdate-1),'fm...

Oracle 编写存储过程并设置定时执行

Oracle 版本:11g PL/SQL 版本:11.0.3.1770 1.如果编写单个存储过程,则直接在procedure新建并编写;如果需要写多个同类功能的存储过程,为了方便管理,可以现在package中定义,然后在package bodies 中编写过程体,如下图所示: 1.1 编写单个procedure 1.1.1右键procedure,新建——...

Jmeter之JDBC Request使用方法(oracle)

JDBC Request:   这个sampler可以向数据库发送一个jdbc请求(sql语句),它经常需要和JDBC Connection Configuration 配置元件一起配合使用。   目录: 一、准备工作 二、配置JDBC Connection Configuration 三、配置JDBC Request 四:JDBC Request参数化...

C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(ODP.net):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html 首先...