oracle不像sql 
server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence

  1. Create Table Tempinfo(
  2. ids int not null,
  3. names nvarchar2(50),
  4. sex varchar(10)
  5. )
  6.  
  7. insert into Tempinfo (ids,names,sex) values (1,'Serein',2188);
  8. insert into Tempinfo (ids,names,sex) values (2,'James',2182);
  9.  
  10. select * from Tempinfo
  11.  
  12. --drop table Tempinfo

实现oracle 自增列第一步,创建一个sequence

  1. CREATE SEQUENCE Tempinfo_seq
  2.  
  3. INCREMENT BY 1 -- 每次加几个
  4.  
  5. START WITH 1 -- 1开始计数
  6.  
  7. NOMAXvalue -- 不设置最大值
  8.  
  9. NOCYCLE -- 一直累加,不循环
  10.  
  11. CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

一旦定义了Tempinfo_seq,你就可以用currval,nextval
    currval=返回 sequence的当前值
    nextval=增加sequence的值,然后返回 sequence 值

比如:
    Tempinfo_seq.CURRVAL
    Tempinfo_seq.NEXTVAL

第二步,创建一个触发器。

  1. create or
  2. replace trigger userlogin_trigger
  3. before insert on Tempinfo
  4. for each
  5. row
  6. begin
  7. select Tempinfo_seq.Nextval into:new.ids from sys.dual
  8. ;
  9. end;

执行插入查看

  1. insert into Tempinfo (names,sex) values ('Terry',2189);

当然也事不用创建触发器,直接在插入数据时使用sequence就可以了

  1. insert into Tempinfo (ids,names,sex) values (Tempinfo_seq.Nextval,'Serein',2188);

可以使用sequence的地方:
    - 不包含子查询、snapshot、view的 select 语句
    - INSERT语句的子查询中
    - NSERT语句的values中
    - UPDATE 的 set中

删除序列
    简单的Drop Sequence
    Sql代码

  1. drop sequence Tempinfo_seq

参考:  oracle 实现插入自增列

Oracle 使用序列创建自增字段

oracle 实现插入自增列(类似SqlServer Identity)的更多相关文章

  1. [转]oracle 实现插入自增列

    本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...

  2. Oracle 12c的自增列Identity Columns

    在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterpr ...

  3. ORACLE表建立自增列

    create tablespace studentDBdatafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Boidentifi ...

  4. Sql Insert into select 创建临时表插入自增列

    ] GO ============================================= -- Author: PPL -- Create date: 2015-11-23 -- Desc ...

  5. Oracle自增列

    一.介绍: 在设计数据库时,有时候希望表的某一列为自增列,例如编号,本文就介绍如何在oracle数据库中实现自增列,需要两个步骤: 1)构建序列(sequence) 在oracle中sequence就 ...

  6. Oracle自增列创建方法

    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器( ...

  7. 重置SQLSERVER表的自增列,让自增列重新计数

    SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种: --- 删除原表数据,并重置自增列truncate table ...

  8. SQL的自增列重置的方法

    SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种: --- 删除原表数据,并重置自增列 truncate tabl ...

  9. 使用JDBC插入数据到ORACLE,使用标识列自增列

    不同于SQL Server的是,Oracle中插入数据的时候,没有自增列或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须在Oracle数据库中指定一个标识列,或者说是一个序列.具体方法如 ...

随机推荐

  1. MyEclipse下的Debug调试技巧汇总

    首先以debug模式启动tomcat,并文件中设断点,然后运行,当程序走到断点处就会转到debug视图下 [1]快捷键(F8)直接执行程序. [2]快捷键(F5)单步执行程序,遇到方法时进入. [3] ...

  2. 转:CMake安装和使用

      CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX ...

  3. 基于 Vue BootStrap的迷你Chrome插件

    代码地址如下:http://www.demodashi.com/demo/14306.html 安装 安装 Visual Studio Code 和Chrome, 自行FQ 详细安装这里略过 安装包管 ...

  4. C#编写的 8种初级+高级排序方法(转)

    摘自:http://blog.csdn.net/mevin/article/details/6714520 程序代码: view plaincopy to clipboard using System ...

  5. Docker基础概念及操作

    一.概念: Docker 属于Linux 容器的一种封装,提供简单易用的容器使用接口.目前最流行的Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件, ...

  6. 能让你聪明的工作DEAL四法则,来自《每周工作四小时》书籍

    来自书籍<每周工作四小时>,作者蒂莫西·费里斯(Tim Ferriss,昵称:蒂姆)   能让你聪明的工作DEAL四法则: 第一步:D——定位(Definition) 第二步:E——精简( ...

  7. Ubuntu用户root密码设置

    我们在安装Ubuntu后发现个问题,就是不像Linux系统那样会在安装过程中设置root的密码,那以后如果需要root的权限时该如何操作呢? Ubuntu里有个命令叫sudo,是以管理员的身份运行命令 ...

  8. WebApi和MVC的区别

    使用上区分,mvc主要用于建站,web api主要用于构建http服务,当然你非要用mvc来构建Uri式的Api也行,不过显然是没有这个必要的,一个不恰当的比喻就像是你也可以玩破解版的单机游戏,也可以 ...

  9. 数据库分析函数 ROW_NUMBER() rank() dense_rank() 的区别 first_value(D) , last_value(D)

    直接上图 select * from tab select B,ROW_NUMBER()over(order by B) from tab 当碰到相同数据时,排名按照记录集中记录的顺序依次递增.  遇 ...

  10. Linux内核同步 - Seqlock

    一.前言 普通的spin lock对待reader和writer是一视同仁,RW spin lock给reader赋予了更高的优先级,那么有没有让writer优先的锁的机制呢?答案就是seqlock. ...