文件名稱 | 版本號 | 作者 | 版本 | |
---|---|---|---|---|
Oracle使用_持續更新 | v1.0.0 | 學生宮布 | 8416837 | Oracle 12C |
配置
序列
ID相關
先創建sequence(序列),再創建trigger(觸發器),然後測試效果
# E_PERM_CLIENT_ROLE是表名
# ID是主鍵名稱
# 創建E_PERM_CLIENT_ROLE序列及觸發器↓
create sequence E_PERM_CLIENT_ROLE_ID_Seq
increment by 1
start with 1482
minvalue 1
maxvalue 99999999991234;
# 自增配置還沒完成,按下文再創建觸發器,就可以用了
# 更新序列,【有需要就更新】
ALTER sequence E_PERM_CLIENT_ROLE_ID_Seq -- E_PERM_CLIENT_ROLE_ID_Seq:上文中定義的序列名稱
start with 1485
INCREMENT BY 2
MAXVALUE 99999999991235;
-- 等等
-- CYCLE -- 到10000後從頭開始
-- NOCACHE;
# 丟棄序列
DROP sequence E_PERM_CLIENT_ROLE_ID_Seq
# 創建ID自增觸發器
create trigger trg_E_PERM_CLIENT_ROLE -- trg_team是觸發器名稱
before insert on E_PERM_CLIENT_ROLE --在創建觸發器前對每一行檢測是否觸發(team你建的表)
for each row
begin
select E_PERM_CLIENT_ROLE_ID_Seq.nextval
into :new.ID from dual; --(new:是關鍵字不必變動;id指的是表中需要自增的id,以實際爲準)
end;
# 測試
# 查看存在的序列
select * from user_sequences;
# 查看現有數據
SELECT * FROM E_PERM_CLIENT_ROLE ORDER BY ID DESC
# 新增時,ID就會自增了
INSERT INTO E_PERM_CLIENT_ROLE(CLIENT_ID, ROLE_CODE) VALUES(440, 'ccTest001')
序列列表select * from user_sequences;
: