1.在sql窗口如下写
create sequence SEQ_USER_INFO_ID//你创建的序列的名称
increment by 1 //每次自增长1
start with 1 //默认id从1开始
maxvalue 99999999 //设置序列最大值为8位9 , NOMAXvalue代表不设置最大值
minvalue 1 //设置最小值
cache 20; //设置缓存的个数,因为是缓存在内存中,当系统死机后,将会跳过20个序列导致序列不连续 ; 这里可以写nocache不缓存序列
2.其实应该再创建表的。其实应该先创建表的。
create table USER_INFO(
ID number(10) primary key not null ,
NAME varchar2(50)
)
3.表和序列都创建好后,需要在表中用一下序列
简单的做法就是往表里面插入一条数据,其中SEQ_USER_INFO_ID.nextval表示了序列的下一个数值
insert into user_info(id , name ) values(SEQ_USER_INFO_ID.nextval , 'vergil' )
当然这样插入后id其实是2,因为设置的序列是从1开始,而序列的自增长又是1,所以下一个序列就是2,这样序列就和表联系了,至于能不能一个序列被多个表使用,还是不要这样,一个表对应一个序列。
可以使用SEQ_USER_INFO_ID.currVal得到序列当前值,或者你从0开始自增长。
4.直接查询序列
select SEQ_USER_ID.currVal from dual //操作不影响序列值
select SEQ_USER_ID.nextval from dual //每操作一次序列增长1
https://www.cnblogs.com/ZiyuanZhu/p/5976580.html