oracle 表不包含自动增长列,要用序列来实现。
-- Create sequence
create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 30
cycle;
sequence 是一个自增长的序列,每次调用nextval的时候会自动增加,可以定义起始值,最大值,增量,cycle是表示循环,即到最大值后从起始值重新开始。
insert into tab (auto_id) values (SEQ_ID.Nextval);
你可以用 select SEQ_ID.Nextval from dual; 来测试下。
每次执行都是会自增的。
查询一下,最后一行编号是多少。重新定义一个sequence 再把start with 后面数设置到最后一行的编号,其余不变
创建一个sequence
create sequence s_id
minvalue 1
maxvalue 999999999
start with 1
increment by 1;
在向编号列插入时使用 s_id.nextval 值