序列(Sequence) 是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。
其主要用途是生产表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
- 创建序列
CREATE SEQUENCE sequence_name
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n |NOMINVALUE]
例:create sequence test_seq increment by 1 start with 1;
- 使用序列
NEXTVAL:用于生成序列中的下一个序列号,调用时要指出序列名
例:select test_seq.nextval from dual;
CURRVAL:用于产生序列的当前值,无论调用多少次都不会产生序列的下一个值; 调用CURRVAL时,应先调用NEXTVAL产生过序列的下一个值,否则没有意义; 调用时要指出序列名
例:select test_seq.currval from dual;
- 实战使用
我们可以在创建表之后使用序列自动生成一个自增字段,使用插入语句:
INSERT INTO YY_PRODUCT(
PRODUCT_ID,
PRODUCT_NAME
)
VALUES(
test_seq.nextval,
'秋冬女士打底裤加绒加厚'
);