新聞中心
求一個(gè)簡單的oracle 觸發(fā)器 寫法
創(chuàng)建兩個(gè)表:
公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出印江免費(fèi)做網(wǎng)站回饋大家。
create?table?a
(stdid?int,
stdname?varchar2(10));
create?table?b
(stdid?int,
stdname?varchar2(10));
創(chuàng)建觸發(fā)器:
CREATE?OR?REPLACE?TRIGGER?tr_insert?
after?insert
ON?a
FOR?EACH?ROW?
BEGIN
INSERT?INTO?b(stdid,stdname)
VALUES(:new.stdid,:new.stdname);
END;
驗(yàn)證,在a表中插入數(shù)據(jù):
insert?into?a?values?(1,'a');
commit;
驗(yàn)證b表結(jié)果:
Oracle 觸發(fā)器怎么寫?
這個(gè)只能遺憾的告訴你,不能實(shí)現(xiàn)
因?yàn)橛|發(fā)器中不能運(yùn)行 ddl語句和commit,rollback語句
所謂的ddl語句就是用語定義和管理數(shù)據(jù)庫中的對象,如Create,Alter,Drop,truncate等,DDL操作是隱性提交的!
其實(shí)剛才寫了一個(gè),創(chuàng)建的時(shí)候沒問題,但是往a里插入數(shù)據(jù)時(shí)報(bào)錯(cuò)
create or replace trigger t_add_col
after insert on a
for each row
begin
execute immediate 'alter table b add '||:new.fieldname||' varchar2(30)';
end;
錯(cuò)誤就是ora-04092,你可以看一下
oracle觸發(fā)器怎么寫?
創(chuàng)建觸發(fā)器,給觸發(fā)器命名,在哪個(gè)表上的增刪改進(jìn)行觸發(fā),是否為行級觸發(fā)
編寫你的邏輯
編譯檢查是否有語法錯(cuò)誤啥的
測試,這里的話,就是你某一個(gè)工種的最低工資增加,那屬于這個(gè)工種的員工中原來是最低工資的也要增加,所以你要先把工種中最低工資查出來,根據(jù)工種號,查詢屬于該工種的人有哪些,把這些員工的工資查出來,再修改工種的最低工資,再查員工工資是否也增加了。
你這表也沒有,我門也沒有辦法給你寫一個(gè)很詳細(xì)的。大致思路一般是這樣
分享名稱:oracle觸發(fā)器怎么寫 請寫出ORACLE觸發(fā)器的種類及對應(yīng)的功能
標(biāo)題URL:http://fisionsoft.com.cn/article/hicicp.html