博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

oracle中自动增长列

Posted on 2006-10-25 17:17  爱情沙漠  阅读(4521)  评论(1编辑  收藏  举报
     最近用vs2005+oracle开发,以前从没用过oracle,对oracle的了解也是甚少.今天,老大说要我建一个表,主键必须是自动增长的.于是我就用SQL Server的方法在那建.摸索了半天就是建不了,于是我就到网上搜...原来它是用序列来解决自动增长列的.....
     下面则是整理出来的一些资料...
 
      序列:
      (1).可以为表中的列自动产生值.
      (2).由用户创建数据库对象,并可由多个用户共享.
      (3).一般用于主键或唯一列.

      例子:
      create sequence my_seq             ---创建序列名

      start with 1                                 ---从1开始

      increment by 1                            ---每次增长1

      maxvalue 999999999                 ---最大值

      minvalue 1                                  ---最小值

      cycle                                          ---循环

      cache                                         ---缓存

      order

      从1开始,每次增长1,最大值为999999999,之后又循环从1开始.

       SQL语句:
       insert into mytable values(my_seq,'aaa')

       insert into mytable values(my_seq,'bbb')

      结果为:
      1    aaa
      2   bbb

      调用:
      select my_seq.nextval from mytable            ---新值

      select my_seq.currval from mytable            ---当前值