Oracle不能像MySQL一样生成自动递增的列,这时就需要序列化,也就是说序列化在Oracle中的作用就是实现自增,其主要语句如下:
create sequence seq_user_id --定义序列名称
start with 1 --开始值 不写时默认为1
minvalue 1 --最小值 不写时默认为1 最小值不能大于开始值
maxvalue 9999 --最大值 不写默认27个9
increment by 1; --设置增量 每次加1
最简单的实现序列化的语句为:
create sequence seq_user_id;
注意在使用序列化时,序列的名称不能与创建的表中的列名重复。
可以使用以下语句进行查询:
select seq_user_id.nextval from dual --查询下一个
select seq_user_id.currval from dual --查询当前的
在查询的时候,需要先查询下一个才能查询当前的,否则会报错。
使用创建的序列名称插入数据:
insert into user_tb values(1,'小李',18,'M')
insert into user_tb values(seq_user_id.nextval,'小周',20,'F')