荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oopilix (优雅的), 信区: Database
标  题: 序号生成器                             Jobs
发信站: 荔园晨风BBS站 (Sun Jun 29 19:56:49 2003), 站内信件

发信人: Jobs (温少), 信区: Visual
标  题: 序号生成器
发信站: BBS 荔园晨风站 (Fri Nov  3 18:48:38 2000), 转信



一 序号生成器
    有很多应用系统要用到序号,如商场的销货号,货物入库的流水号
等等。由于序号是连续生成的,在大型系统中,会有多个用户同时申请
下一个序号,序号生成便成了应用系统的瓶颈问题∥私饩稣飧鑫侍猓?nbsp;
大型数据库都增加了序号对象。通过序号对象可以自动生成序号,多个
用户可以并发读取,无需互相等待。

二 ORACLE的序号生成器
    ORACLE序号生成的语法为:
      create 序号名 increment by 每次增长数
      start with 起始序号
    例如,生成序号seq1,初始值为1,每次增长为1:
      create seq1 increment by 1
      start with 1
    可以用下面的语句得到当前的序号:
      select seq1.currval from dual
    也可以用下面的语句得到下一个序号:
      insert into dept values(seq1.nextval,...)
    在一个事务中,不管由于什么原因程序终止,已经申请的序号就不能
再使用了。多个用户同时使用序号时,它们之间互不等待。因此,使用序
号发生器会有跳号现象出现。

三 SYBASE的序号生成器
    在SYBASE中,每个表可以有一个identity列,此列即为序号列。定义
序号列的语法为:
      create table 表名
      (...
       序号列名 numeric(长度,0) identity,
       ...
      )
    序号列的数据类型必须是numeric,小数位数必须是0。
    SYBASE会自动往序号列中加入数据。序号的起始值为1。与ORACLE类似,
在一个事务中,不管由于什么原因程序终止,都会出现跳号现象。


--


   我想超越这平凡的生活,注定我暂时漂泊!

   我无法停止我内心的狂热,对未来的执着!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.18.238]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店