• 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;  
  • 相关阅读:
    洛谷 P1903 【模板】分块/带修改莫队(数颜色)
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
    LibreOJ #6208. 树上询问
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    hdu 3861 The King’s Problem
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows
    洛谷 P2905 [USACO08OPEN]农场危机Crisis on the Farm
    洛谷 U3348 A2-回文数
    洛谷 P1001 A+B Problem
    LibreOJ #2130. 「NOI2015」软件包管理器
  • 原文地址:https://www.cnblogs.com/mxh691/p/1811854.html
Copyright © 2020-2023  润新知