1.新建table
CREATE TABLE ysb_log(
id number(8) primary key not null ,
tbdate varchar(50) NULL,
tb_time varchar(50) NOT NULL,
tblog varchar(500) NOT NULL,
tbreor varchar2(20) null,
bs varchar(50) NOT NULL
);
在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方
2. 创建自增的序列号
create sequence S_ysb_log
minvalue 1
maxvalue 99999999 --最大的值
start with 1
increment by 1
NOCYCLE -- 一直累加,不循环
nocache; --不建缓冲区
select S_ysb_log.CURRVAL from dual --- 查寻当前的主键值,
select S_ysb_log.Nextval from dual -- 查询下一个值
3. 向表中插入数据:
insert into ysb_log (id, tbdate , tb_time, tblog, tbreor ,bs )
values ( S_ysb_log.Nextval , '2016-7-21','10:01:00','dddd',null, 'OrderDown' )
4. 另一种方式: 是通过建立触发器由触发器去调用序列号:
--建完表和自增值后键一个触发器
create trigger mem_trig before
insert on ysb_log for each row when (new.id is null)
begin select S_ysb_log.nextval into:new.id from dual; end;
-------------------------
insert into ysb_log (tbdate , tb_time, tblog, tbreor ,bs )
values ( '2016-7-21','10:01:00','dddddd',null, 'OrderDown' )
可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的valueS中
- UPDATE 的 SET中