第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

行級觸發(fā)器數(shù)據(jù)確認一旦不通過,使用raise_application_error拋出異常后就不繼續(xù)執(zhí)行后面所有行了嗎?

行級觸發(fā)器數(shù)據(jù)確認一旦不通過,使用raise_application_error拋出異常后就不繼續(xù)執(zhí)行后面所有行了嗎?

怎么能只在不通過的行不執(zhí)行,然后跳過該行繼續(xù)執(zhí)行下一行呢?

正在回答

0 回答

行級觸發(fā),就表明針對的是【行】。

如,表TABLE,有兩個用戶A,B在操作TABLE兩行數(shù)據(jù),A操作的行達到觸發(fā)條件,自然按里面的邏輯執(zhí)行;

B操作行沒有達到觸發(fā)條件,自然對原來行不做任何處理。您就把每一行看作在表里分隔開的對象就行了,互不干擾

1 回復 有任何疑惑可以回復我~
#1

STRONG很壯不怕撞 提問者

感謝回答:) 我之前應該是理解錯了,之前沒理解行級觸發(fā)器觸發(fā)的時候只是針對一行數(shù)據(jù)的操作,雖然觸發(fā)器中寫了 for each row 所以在漲工資的案例中,每更新一行就觸發(fā)一次行級觸發(fā)器,拋出異常也只影響這一行數(shù)據(jù)。
2016-04-18 回復 有任何疑惑可以回復我~
#2

qq_騎著蝸牛去旅行_03471935

不對吧,我實際測試的是:比如sal更改前的值是:1000,1500,3000,5000 我在if條件里面設置的是更新后的薪水如果大于2000,就拋出異常,但執(zhí)行發(fā)現(xiàn)只拋出了3000的這一條異常,5000的沒拋出, 對比執(zhí)行前和執(zhí)行后的情況,發(fā)現(xiàn)薪水字段內容沒發(fā)生變化,一條都沒有,雖然有一半的數(shù)據(jù)不符合異常條件 這就說明兩點:1,如果有一條滿足異常情況,所有的數(shù)據(jù)都更新不了 2,遇到符合異常的條件時,就報錯不再繼續(xù)往下執(zhí)行
2016-07-06 回復 有任何疑惑可以回復我~
#3

qq_騎著蝸牛去旅行_03471935

這是我寫的觸發(fā)器 create or replace trigger checksalary before update on emp for each row BEGIN if :new.sal > 2000 then Raise_application_error(-20002,'無法更新'); end if; end; / 這是我執(zhí)行的更新語句 update emp set sal=sal+1;
2016-07-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

行級觸發(fā)器數(shù)據(jù)確認一旦不通過,使用raise_application_error拋出異常后就不繼續(xù)執(zhí)行后面所有行了嗎?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號