觸發(fā)器的作用
觸發(fā)器的作用類似攔截器.把一些針對數(shù)據(jù)庫的DML操作(insert/update/delete/select)進行攔截,符合業(yè)務要求的進行操作,不符合要求的操作可以通過拋出異常來阻止
說白了就是數(shù)據(jù)確認(after)與安全性檢查(before),此外觸發(fā)器不針對select操作
1.首先創(chuàng)建表testUser
Oracle設置為不區(qū)分大小的,所以table名,言簡意賅即可。
1
|
CREATE TABLE testUser ( id NUMBER ( 11 ) primary key , name VARCHAR ( 50 ) ); |
2.創(chuàng)建sequence,最小值為1,最大值為99999999,初始為1,步長1
sequence名的話針對某張表習慣命名為:seq_表名
1
|
CREATE sequence seq_testUser minvalue 1 maxvalue 99999999 START WITH 1 INCREMENT BY 1 nocache ORDER ; |
3.創(chuàng)建觸發(fā)器
觸發(fā)器是基于sequence 所以習慣命名為:trg_sequence名
1
2
3
4
5
6
7
8
9
|
CREATE OR REPLACE TRIGGER trg_seq_testUser BEFORE INSERT ON testUser FOR EACH ROW BEGIN SELECT seq_testUser.nextval INTO : new.id FROM dual; END ; |
4.插入一條數(shù)據(jù)
1
2
3
|
insert into testUser(username) values ( '強哥0' ); insert into testUser(username) values ( '強哥1' ); insert into testUser(username) values ( '強哥2' ); |
5查詢結果
1
|
select * from testUser |
到此這篇關于Oracle 觸發(fā)器實現(xiàn)主鍵自增的文章就介紹到這了,更多相關Oracle 觸發(fā)器主鍵自增內容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/menmu66/article/details/121978087