嘮叨幾句:幾年前的知識忘卻了,整理一下筆記,提供一下方便
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('本山');