zoukankan      html  css  js  c++  java
  • oracle 实现插入自增列(类似SqlServer Identity)

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

    Create Table Tempinfo(
           ids int not null,
           names nvarchar2(50),
           sex varchar(10)
    )
    
    insert into Tempinfo (ids,names,sex) values (1,'Serein',2188);
    insert into Tempinfo (ids,names,sex) values (2,'James',2182);
    
    select * from Tempinfo
    
    --drop table Tempinfo

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

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

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

    比如:
        Tempinfo_seq.CURRVAL
        Tempinfo_seq.NEXTVAL

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

    create or 
    replace trigger userlogin_trigger
    before insert on Tempinfo
    for each 
    row
    begin
          select  Tempinfo_seq.Nextval    into:new.ids from sys.dual 
    ;
    end;

    执行插入查看

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

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

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

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

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

      drop sequence Tempinfo_seq;

    参考:  oracle 实现插入自增列   

            Oracle 使用序列创建自增字段

  • 相关阅读:
    MFC中CDialog与其对话框资源的绑定 dll中资源的切换
    DirectDraw 显示 YUV
    ClipCursor与GetClipCursor 用法
    MFC消息处理流程概述 .
    HTML5 WebSocket 技术介绍
    NodepartySZ1 深圳聚会活动回顾总结[2012.01.08] CNode
    index QuickWeb文档
    Node.js Manual
    An innovative way to replace AJAX and JSONP using node.js and socket.io
    RequireJS
  • 原文地址:https://www.cnblogs.com/wangfuyou/p/5941520.html
Copyright © 2011-2022 走看看