• oracle设置自增字段,oracle序列


    如果没有表可以先创建个表

    Sql代码 复制代码
    1. ###建表###   
    2.   
    3. CREATE TABLE "NWVIDEO"."DEVICE"  
    4. (   
    5. "DID" NUMBER NOT NULL,   
    6. "TYPE" NUMBER(3) NOT NULL,   
    7. "BODY" VARCHAR2(100) NOT NULL,    
    8. "HITS" NUMBER(10) DEFAULT 0 NOT NULL,    
    9. PRIMARY KEY("ID")   
    10. )  

     然后是设置序列

    Sql代码 复制代码
    1. ###创建序列###    
    2.   
    3. CREATE SEQUENCE "NWVIDEO"."NWVIDEO_DEVICE_DID_SEQ"    
    4. INCREMENT BY 1     --每次加1个   
    5. START WITH 1           --从1开始计数   
    6. NOMAXVALUE            --不设置最大值   
    7. MINVALUE 1                --最小值为1   
    8. NOCYCLE                    --一直累加,不循环   
    9. CACHE 50                   --设置缓存为50  

     建立触发器

    Sql代码 复制代码
    1. ###建自动更新的触发器###   
    2.   
    3. CREATE OR REPLACE TRIGGER "NWVIDEO"."NWVIDEO_DEVICE_DID_TRIGGER"  
    4. BEFORE INSERT  
    5. ON "NWVIDEO"."DEVICE"  
    6. FOR EACH ROW   
    7. DECLARE  
    8. next_did NUMBER;   
    9. BEGIN  
    10. --Get the next id number from the sequence   
    11. SELECT NWVIDEO_device_did_seq.NEXTVAL   
    12. INTO next_did   
    13. FROM dual;   
    14. --Use the sequence number as the primary key   
    15. --for the record being inserted.   
    16. :new.did := next_did;   
    17. END;  

     如果did字段是主键的话

    可以建一个主键保护器

    Sql代码 复制代码
    1. ###建保护PRIMARYKEY的触发器###    
    2.   
    3. CREATE OR REPLACE TRIGGER "TEST"."NWVIDEO_DID_UPDATE_TRIGGER"  
    4. BEFORE UPDATE OF "DID" ON "NWVIDEO"."DEVICE"  
    5. FOR EACH ROW   
    6. BEGIN  
    7. RAISE_APPLICATION_ERROR (-20000,'vwvideo_device_did_update_trigger:Updates of the DID field'||'are not allowed.');    
    8. END;  
  • 相关阅读:
    默认路由
    路由与交换,cisco路由器配置,动态路由协议—RIP
    路由与交换,cisco路由器配置,浮动静态路由
    路由与交换,cisco路由器配置,静态路由
    路由与交换,cisco路由器配置,基础知识点(二)
    路由与交换,cisco路由器配置,基础知识点(一)
    Linux服务器架设篇,Nginx服务器的架设
    BIOS和DOS中断大全
    一步一个脚印
    汇编缩写大全
  • 原文地址:https://www.cnblogs.com/mxh691/p/1811854.html
Copyright © 2020-2023  润新知