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中