共計 1402 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“怎么使用一條語句實現 update/insert 語句”,在日常操作中,相信很多人在怎么使用一條語句實現 update/insert 語句問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用一條語句實現 update/insert 語句”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
應用場景:處理業務數據時,如果數據庫中存在這條記錄則更新,如果不存在就更新。
實現 SQL:(使用語 oracle9i 之后的版本)
MERGE INTO [your table-name] [rename your table here]
USING ( [write your query here] )[rename your query-sql and using just like a table]
ON ([conditional expression here] AND […]…)
WHEN MATHED THEN [here you can execute some update sql or something else ]
WHEN NOT MATHED THEN [execute something else here ! ]
說明:
using:update/insert 的原數據,就是使用這些查到的數據進行更新或者插入操作的。所以說必須保證能夠查出數據。
on:判斷條件,判斷外層表記錄和 using 查出來的記錄。
Merge:merge 是用來更新整張表用得,使用時要小心。
使用例子:
merge into tfa_alarm_act_nms a
using (select FP0,FP1,FP2,FP3,REDEFINE_SEVERITY
from tfa_alarm_status) b
on (a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3)
when matched then update set a.redefine_severity=b.redefine_severity
when not matched then insert (a.fp0,a.fp1,a.fp2,a.fp3,a.org_severity,a.redefine_severity,
a.event_time ,a.int_id)
values (b.fp0,b.fp1,b.fp2,b.fp3,b.REDEFINE_SEVERITY,b.redefine_severity,sysdate,7777778);
解釋:利用表 tfa_alarm_status 跟新標 tfa_alarm_act_nms 的 b.redefine_servertify,條件是 a.fp0=b.fp0 and a.fp1=b.fp1 and a.fp2=b.fp2 and a.fp3=b.fp3
如果 tfa_alarm_act_nms 表中沒有該條件的數據就插入。
到此,關于“怎么使用一條語句實現 update/insert 語句”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!