用sequence
创建一个SEQ_UU_RECORD
CREATE SEQUENCE YING.SEQ_UU_RECORD
INCREMENT BY 1
START WITH 21
NOMAXVALUE
NOMINVALUE
NOCYCLE
CACHE 20
NOORDER
/
创建一个SEQ_UU_RECORD
CREATE SEQUENCE YING.SEQ_UU_RECORD
INCREMENT BY 1
START WITH 21
NOMAXVALUE
NOMINVALUE
NOCYCLE
CACHE 20
NOORDER
/
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; -- 预分配缓存大小为10定义了emp,你就可以用CURRVAL,NEXTVAL
CURRVAL = 返回 sequence的当前值
NEXTVAL = 增加sequence的值,然后返回 sequence 值
比如:
emp.CURRVAL
emp.NEXTVAL 然后
select emp.nextval from dual;
insert 也一样emp.nextval,
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --预分配缓存大小为10 定义了emp,你就可以用CURRVAL,NEXTVAL
CURRVAL = 返回sequence的当前值
NEXTVAL = 增加sequence的值,然后返回sequence值
比如:
emp.CURRVAL
emp.NEXTVAL 可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的VALUES中
- UPDATE 的 SET中
然后
select emp.nextval from dual;
insert 也一样emp.nextval,
做法楼上已说的很明白了.
而是通过创建SEQUENCE来得到一个自动增长值,然后对表中的列赋值