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;