批量更新,Oracle下merge into就比較快了,想要再提升的話
龍勝網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。
1、using包含的Select,看能再修改不,試試hint
2、試試存儲過程
3、從程序的角度修改調(diào)用新增or更新的邏輯
update?表A1?tmp1
set?tmp1.b1?=
(select?tmp2.b1
from?表B1?tmp2
where?tmp1.a1=tmp2.a1);
看具體怎么更新了,一般語法是:
update?表名?set?字段='xxx'?where?條件;
commit;
這個所有數(shù)據(jù)庫基本一致,都是這個語法
可以使用rowid進行更新,后果是取消隨即更新,按照的讀入的數(shù)據(jù)塊順序進行更新,增加更新效率。但是會出現(xiàn)大量的物理讀
使用oracle進行批量update更新數(shù)據(jù)的時候,可以在更新前進行判斷,根據(jù)條件進行批量更新
update tables_name t
set t.value1 = case
when t.value1 = '33020' then
'330200'
when t.value1 = '33021' then
'330210'
when t.value1 = '33022' then
'330221'
end
where t.value1 in ('33020', '33021', '33022');
oracle批量按條件更新
update 就可以實現(xiàn)的。 請?zhí)峁永龜?shù)據(jù)和樣例結果