zoukankan      html  css  js  c++  java
  • oracle数据库ID自增长--序列

    什么是序列?在mysql中有一个主键自动增长的id,例如:uid number primary key auto_increment;在oracle中序列就是类似于主键自动增长,两者功能是一样的,只是叫法不同而已。

    在oracle中想要实现id自动增长只能用序列来实现。在oracle中,是将序列装入内存,可以提高访问效率。

    1.)序列的创建

      create sequence 序列名称

      increment by n 每次增长多少 //系统默认值为1. 

      start with  n从几开始 //系统默认值为1.

      [maxvalue  n最大值|nomaxvalue]  //NoMaxValue:是系统对序列设置的默认值. 即指定升序序列的最大值为10的27次方.降序序列的最大值为-1.

      [minvalue n最小值|nominvalue] //同上

      [cycle |nocycle 是否循环]

      [cache  n缓存的数量|nocache]  //指定要保留在内存中整数的个数.默认缓存的格式为20个. 可以缓存的整数最少为2个. 可以缓存的整数个数最多为:Cell(maximum_num—minimum_num)/ABS(increment_num). 注:Cell(序列的最大上限值—最小下限值,)/ABS(每次自增的增量).

    例如:create sequence person_pid_seq

               increment by 1

               start with 1

               maxvalue 1000

               nocycle

               nocache;

      可以直接创建,其他的选项全部是默认值。例如:create sequence person_pid_seq;

    2.)序列的操作

    序列创建完成之后,所有的自动增长就都是由我们自己操作了,那么如果操作呢?提供了两种方式。

      2.1 nextval:取得序列的下一个值

      2.2 currval:取得当前序列的内容

    注意:currval 需要再nextval调用之后才能使用

    3.)序列的使用

        insert into person values(person_pid_seq.nextval,'name,'adress');//一般是利用nextval,让id保持一直递增。

    4.)序列的删除

        drop sequence person_pid_seq;

    5.)序列的注意事项

           由于序列是同auto_increment一样的,所有它是不会回头的,即使你删掉了数据,它的id永远不会回到以前,只会一直递增,例如,你有十条数据,你删了第十条,希望下一条的id从10开始,这是不可能的,除非你重新做。 

    详情参考:https://blog.csdn.net/yongqingmiao/article/details/6753421

  • 相关阅读:
    linux学习网站
    异步JS(Asynchronous JavaScript)
    针对性的遍历tree数据,获取所需要的内容(获取id数组、id对应的层级数组、来获取当前的对象)
    代码注释中的专有词:TODO、FIXME和XXX
    四月份前端面试指北
    微信小程序之裁剪图片成圆形
    金九银十求职季,前端面试大全送给你
    node:爬虫爬取网页图片
    微信小程序UI组件库 iView Weapp快速上手
    (干货)微信小程序之转发好友
  • 原文地址:https://www.cnblogs.com/jasonboren/p/10923756.html
Copyright © 2011-2022 走看看