网友俱乐部 » 数据库操作 » Oracle教程 » ORACLE中ID自动增加字段

2008-4-2 08:40 lonjew
ORACLE中ID自动增加字段

ORACLE中ID自动增加字段
    自动增加字
CREATE TABLE t_topic (
  topicId      NUMBER(18,0)  NOT NULL  ,                      -- 主题ID
topicTitle  VARCHAR2(100)  NOT NULL ,                        -- 主题名
topicContent varchar2(2000) NOT NULL ,                      -- 主题内容
topicAuthor  VARCHAR2(20)  NOT NULL ,                        -- 主题发表者(论坛帖子发表人)
topicBoaId  NUMBER(1,0)    NOT NULL REFERENCES t_board(boaId) , -- 主题属于论坛哪个模块
topicHits    NUMBER(18,0)  DEFAULT '0' ,                    -- 主题点击数
topicElite  NUMBER(1,0)    DEFAULT '0' ,                    -- 是否为精华帖子 0、否 1、是
topicTop    NUMBER(1,0)    DEFAULT '0' ,  -- 是否置顶主题 0、否 1、是
topicLock    NUMBER(1,0)    DEFAULT '0' ,  -- 是否禁止回复 0、否 1、是
topicDel    NUMBER(1,0)    DEFAULT '0' ,  -- 是否删除回复 0、否 1、是(特殊用途,管理员文章不让跟贴)
topicPubTime DATE NOT NULL,                -- 主题被创建时间
  topicReNum  NUMBER(18,0)  DEFAULT '0' ,    -- 回复主题的总数
topicReUser  VARCHAR2(20)  DEFAULT '' ,      -- 最后回复的作者
topicReTime  DATE          ,      -- 最后回复的时间
topicIp      VARCHAR2(15) DEFAULT '' ,      -- 发表人的IP
PRIMARY KEY (topicId)
);
Create Sequence t_topic_Id_sequence                                    --主题序列
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;  
  
CREATE OR REPLACE TRIGGER t_topic_Id_trigger //触发器
BEFORE INSERT
ON t_topic
FOR EACH ROW
DECLARE
newId NUMBER(18,0);
BEGIN
SELECT t_topic_Id_sequence.nextval INTO newId FROM dual;
:new.topicId := newId;
END;

页: [1]
查看完整版本: ORACLE中ID自动增加字段


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.