create or replace trigger user_trg
before insert on user
for each row --行级的trigger
declare
tmpNum number;
begin
SELECT seq_user_uid.nextval INTO tmpNum FROM dual;
--:new.uid := 'u' || lpda(tmpNum,7,'0');
:new.uid := tmpNum;
end user_trg;
create or replace trigger user_trg
before insert on user
for each row --行级的trigger
begin
SELECT seq_user_uid.nextval INTO :new.uid FROM dual;
end user_trg;
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); //empseq.nextval, 添加自增列
SELECT empseq.currval FROM DUAL; //返回最后一个自增值
Alter Sequence
你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence
再 re-create .
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000后从头开始
NOCACHE ;