oracle建表 和 設置主鍵自增


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中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM