文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>oracle设置自增字段,oracle序列

oracle设置自增字段,oracle序列

时间:2010-08-29  来源:小马的酒吧

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

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. )  
###建表###

CREATE TABLE "NWVIDEO"."DEVICE"
(
"DID" NUMBER NOT NULL,
"TYPE" NUMBER(3) NOT NULL,
"BODY" VARCHAR2(100) NOT NULL, 
"HITS" NUMBER(10) DEFAULT 0 NOT NULL, 
PRIMARY KEY("ID")
)

 然后是设置序列

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  
###创建序列### 

CREATE SEQUENCE "NWVIDEO"."NWVIDEO_DEVICE_DID_SEQ" 
INCREMENT BY 1     --每次加1个
START WITH 1           --从1开始计数
NOMAXVALUE            --不设置最大值
MINVALUE 1                --最小值为1
NOCYCLE                    --一直累加,不循环
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;  
###建自动更新的触发器###

CREATE OR REPLACE TRIGGER "NWVIDEO"."NWVIDEO_DEVICE_DID_TRIGGER"
BEFORE INSERT
ON "NWVIDEO"."DEVICE"
FOR EACH ROW
DECLARE
next_did NUMBER;
BEGIN
--Get the next id number from the sequence
SELECT NWVIDEO_device_did_seq.NEXTVAL
INTO next_did
FROM dual;
--Use the sequence number as the primary key
--for the record being inserted.
:new.did := next_did;
END;

 如果did字段是主键的话

可以建一个主键保护器

Sql代码
  1. ###建保护PRIMARYKEY的触发器###    
  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;  
###建保护PRIMARYKEY的触发器### 

CREATE OR REPLACE TRIGGER "TEST"."NWVIDEO_DID_UPDATE_TRIGGER"
BEFORE UPDATE OF "DID" ON "NWVIDEO"."DEVICE"
FOR EACH ROW
BEGIN
RAISE_APPLICATION_ERROR (-20000,'vwvideo_device_did_update_trigger:Updates of the DID field'||'are not allowed.'); 
END;

 

相关阅读 更多 +
排行榜 更多 +
地狱摩托游戏最新版下载

地狱摩托游戏最新版下载

赛车竞速 下载
小猫快来钓鱼游戏下载

小猫快来钓鱼游戏下载

休闲益智 下载
殴打氪金大佬昊天手游下载

殴打氪金大佬昊天手游下载

休闲益智 下载