create sequence db_gjz_seq increment by 1 start with 30006908 nomaxvalue minvalue 1 nocycle cache 20 noorder; CREATE OR REPLACE TRIGGER tri_tz_sxbfb BEFORE insert on tz_sxbfb FOR EACH ROW when (NEW.ID IS NULL) declare begin select db_gjz_seq.nextval into :new.id from dual; end; 表tz_sxbfb create table tz_sxbfb(id number,name varchar2(40))
三楼是可以的,只是还要在加一个trigger就可以了,四楼的要讲清楚啊DROP SEQUENCE SEQ_STUDENT_ID; create sequence SEQ_STUDENT_ID --这是它的名称 minvalue 1 --这个是表示这个sequence的最小值 maxvalue 999999999999999999999999999 --这个是表示这个sequence的最大值 start with 1 --表示从哪里开始,这里表示从1开始 increment by 1 --表示增加大小,这里表示每次加1 cache 20; CREATE OR REPLACE TRIGGER STUDENT_ID_BIR BEFORE INSERT ON STUDENTFOR EACH ROW BEGIN if :new.UNQID is NULL then
SELECT SEQ_STUDENT_ID .NEXTVAL INTO :new.UNQID FROM dual; END if; END; / COMMIT;
建立序列啊!create sequence ss; insert into 表名(ss.nextval,其他的数值);
create sequence seq1;
select seq1.nextval into 主键 from dual;
首先建立sequence,如下:create sequence SEQ_STUDENT_ID --这是它的名称
minvalue 1 --这个是表示这个sequence的最小值
maxvalue 999999999999999999999999999 --这个是表示这个sequence的最大值
start with 1 --表示从哪里开始,这里表示从1开始
increment by 1 --表示增加大小,这里表示每次加1
cache 20; 有一个学生表create table student(id int,name varchar(20),res varchar(100));插入数据
insert into student values(SEQ_STUDENT_ID.nextval,'zhangsan','res');
这个里面的SEQ_STUDENT_ID .nextval就表示自动增长,nextval是下一个值,currval表示当前sequence的值是多少这样也可以查看 select SEQ_STUDENT_ID.currvalfrom dual; 查看当前值
select SEQ_STUDENT_ID.nextval from dual; 查看下一个值
increment by 1
start with 30006908
nomaxvalue
minvalue 1
nocycle
cache 20
noorder;
CREATE OR REPLACE TRIGGER tri_tz_sxbfb
BEFORE insert on tz_sxbfb FOR EACH ROW
when (NEW.ID IS NULL)
declare
begin
select db_gjz_seq.nextval into :new.id from dual;
end;
表tz_sxbfb
create table tz_sxbfb(id number,name varchar2(40))
create sequence SEQ_STUDENT_ID --这是它的名称
minvalue 1 --这个是表示这个sequence的最小值
maxvalue 999999999999999999999999999 --这个是表示这个sequence的最大值
start with 1 --表示从哪里开始,这里表示从1开始
increment by 1 --表示增加大小,这里表示每次加1
cache 20;
CREATE OR REPLACE TRIGGER STUDENT_ID_BIR
BEFORE INSERT
ON STUDENTFOR EACH ROW
BEGIN
if :new.UNQID is NULL then
SELECT SEQ_STUDENT_ID .NEXTVAL
INTO :new.UNQID
FROM dual;
END if;
END;
/
COMMIT;
insert into 表名(ss.nextval,其他的数值);