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)
还没有任何评论哟~
