博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle ID自增长
阅读量:5091 次
发布时间:2019-06-13

本文共 811 字,大约阅读时间需要 2 分钟。

首先,你要有一张表!

       CREATE TABLE example(
             ID Number(4) NOT NULL PRIMARY KEY,
             NAME VARCHAR(25),
             PHONE VARCHAR(10),
             ADDRESS VARCHAR(50)

          );

     然后,你需要一个自定义的sequence

     CREATE SEQUENCE emp_sequence
          INCREMENT BY 1 -- 每次加几个
          START WITH 1 -- 从1开始计数
          NOMAXVALUE -- 不设置最大值
          NOCYCLE -- 一直累加,不循环
          NOCACHE -- 不建缓冲区
     以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq
,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!跑题了!)
     书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下:
     CREATE TRIGGER "触发器名称" BEFORE
          INSERT ON example FOR EACH ROW WHEN (new.id is null)
      begin
          select emp_sequence.nextval into: new.id from dual;
       end;
     打完收工!下面你就试试插入数据吧

转载于:https://www.cnblogs.com/foura/archive/2010/11/24/1886165.html

你可能感兴趣的文章
C#语法糖之 session操作类 asp.net
查看>>
2015 Multi-University Training Contest 3
查看>>
使用Gitblit 在windows 上部署你的Git Server
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
bzoj 1010: [HNOI2008]玩具装箱toy
查看>>
Kotlin动态图
查看>>
基元线程同步构造
查看>>
ElasticSearch 获取es信息以及索引操作
查看>>
Apollo快速安装视频教程
查看>>
mysql 用户管理和权限设置(转)
查看>>
PHP进程通信基础——信号
查看>>
32复用
查看>>
COGS 1578. 次小生成树初级练习题
查看>>
openstack pike 使用 linuxbridge + vxlan
查看>>
vim 括号匹配 以及各种跳转技巧
查看>>
正在学习或准备学习 Web 应用开发的初学者
查看>>