oracle數據庫創建表且主鍵自增


嘮叨幾句:幾年前的知識忘卻了,整理一下筆記,提供一下方便

1、創建數據庫表 設置主鍵

create table users(
  userid number(10) primary key, /*主鍵,自動增加*/
  username varchar2(20)
);

附  刪除表:drop table users;

2、創建序列自增

CREATE SEQUENCE user_Sequence
  INCREMENT BY 1 -- 每次加幾個
  START WITH 1 -- 從1開始計數
  NOMAXVALUE -- 不設置最大值
  NOCYCLE -- 一直累加,不循環
  CACHE 100;
附  刪除序列: DROP SEQUENCE user_Sequence

創建好序列之后,就手動可以添加數據了,可以多執行幾次

insert into users(userid ,username ) values(user_Sequence.nextval,'范偉');

查詢表數據看看效果

select userid ,username from users

3、那么問題來了,在oracle客戶端這樣操作是可以的。關鍵是怎么融入到實際開發中呢? 創建觸發器試試!!   

create or replace trigger users_trigger    --users_trigger    觸發器名稱
before insert on users                  --users是表名
for each row
declare
nextid number;
begin
IF :new.userid IS NULL or :new.userid=0 THEN                 --userid是列名
select user_Sequence.nextval                                              --user_Sequence 正是剛才創建的序列
into nextid
from sys.dual;
:new.userid:=nextid;
end if;
end users_trigger ;                                       --users_trigger  觸發器名稱

附 刪除觸發器:drop trigger users_trigger;

再次插入數據試試效果吧!!!!

insert into users(username ) values('本山');

 


免責聲明!

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



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