Advertisement

Oracle给表设置自增字段

阅读量:

第一步建表

复制代码
    CREATE TABLE USERLOG(
      "ID" NUMBER(8,0) NOT NULL ENABLE
    )

第二步为表字段创建序列

复制代码
    --格式
    CREATE SEQUENCE  表名_自增的字段名_SEQ
       NOMINVALUE --不设最小值
       NOMAXVALUE --不设最大值
       START WITH 1 --从1开始
       INCREMENT BY 1 --每次加1
       NOCACHE  --不建立缓冲区
       NOCYCLE;  --不循环
复制代码
    --示例
    CREATE SEQUENCE  USERLOG_ID_SEQ
       NOMINVALUE
       NOMAXVALUE
       START WITH 1
       INCREMENT BY 1
       NOCACHE
       NOCYCLE;

第三步为序列设置触发器

复制代码
    --格式:
    CREATE OR REPLACE TRIGGER 表名_自增的字段名_TRI
    BEFORE INSERT ON 表名
    FOR EACH ROW 
    WHEN (NEW.自增的字段名 IS NULL) --主键不存在才调用触发器
    BEGIN
      SELECT 第二步创建的序列名称.NEXTVAL INTO:NEW.自增的字段名 FROM DUAL;
    END;
复制代码
    --示例
    CREATE OR REPLACE TRIGGER USERLOG_ID_TRI  --触发器名称,格式:表名_自增的字段名_TRI
    BEFORE INSERT ON USERLOG
    FOR EACH ROW 
    WHEN (NEW.ID IS NULL)
    BEGIN
      SELECT USERLOG_ID_SEQ.NEXTVAL INTO:NEW.ID FROM DUAL;
    END;

全部评论 (0)

还没有任何评论哟~