Oracle 數(shù)據(jù)庫 有則更新沒有則插入寫法

今天開發(fā)碰到了一個很常見的問題话瞧,就是需要根據(jù)數(shù)據(jù)庫中是否存在來insert或update您没,以前的做法是
1.查詢記錄是否存在

select count(1) from table_name where ****;

2.判斷
如果>=1則update table_name
如果==0則insert table_name
新學習到的方法是使用MERGE INTO語法

MERGE INTO 表名
USING 表名/視圖/子查詢 ON 連接條件
-- 當匹配得上連接條件時
WHEN MATCHED THEN 
更新疗琉、刪除操作
-- 當匹配不上連接條件時
WHEN NOT MATCHED THEN 
更新、刪除尘盼、插入操作
MERGE INTO table_name alias1
USING (table | view | sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
  UPDATE table_name SET col1 = col_val1, col2 = col2_val
WHEN NOT MATCHED THEN
  INSERT (column_list) VALUES (column_values);

簡單翻譯一下
操作alias1表中的數(shù)據(jù)
通過ON 中的條件進行過濾
存在執(zhí)行更新操作
不存在執(zhí)行插入操作

假設(shè)studen中name字段唯一
現(xiàn)在的業(yè)務(wù)場景是student中有叫小明的則更新小明的信息(age)
沒有叫小明的則插入小明的信息(name,age)
實現(xiàn)如下

merge into student stu
using (SELECT
    nvl(max(student .name),0) name
           FROM student 
       WHERE student .name= :'小明') s
on (stu.name=s.name)
when matched then
  update set stu.age = '11'
when not matched then
  insert ( name, age) values ( '小明', '10');

需要注意的地方
1.如果using中的語句什么都查不出來统舀,那么insert是不會執(zhí)行的
2.on中的條件不能作為更新列,否則會報錯
3.on中的條件一定要過濾準確澄港,否則會整表更新

目前就理解這么多

2020年4月27日記錄
發(fā)現(xiàn)一個問題,merge into 用as別名時會報錯,直接空格別名沒問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椒涯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子回梧,更是在濱河造成了極大的恐慌废岂,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狱意,死亡現(xiàn)場離奇詭異湖苞,居然都是意外死亡,警方通過查閱死者的電腦和手機详囤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門财骨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人藏姐,你說我怎么就攤上這事隆箩。” “怎么了羔杨?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵捌臊,是天一觀的道長。 經(jīng)常有香客問我兜材,道長理澎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任护姆,我火速辦了婚禮矾端,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卵皂。我一直安慰自己秩铆,他們只是感情好,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布灯变。 她就那樣靜靜地躺著殴玛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪添祸。 梳的紋絲不亂的頭發(fā)上滚粟,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音刃泌,去河邊找鬼凡壤。 笑死署尤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的亚侠。 我是一名探鬼主播曹体,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硝烂!你這毒婦竟也來了箕别?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滞谢,失蹤者是張志新(化名)和其女友劉穎串稀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狮杨,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡母截,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了禾酱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片微酬。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颤陶,靈堂內(nèi)的尸體忽然破棺而出颗管,到底是詐尸還是另有隱情,我是刑警寧澤滓走,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布垦江,位于F島的核電站,受9級特大地震影響搅方,放射性物質(zhì)發(fā)生泄漏比吭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一姨涡、第九天 我趴在偏房一處隱蔽的房頂上張望衩藤。 院中可真熱鬧,春花似錦涛漂、人聲如沸赏表。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓢剿。三九已至,卻和暖如春悠轩,著一層夾襖步出監(jiān)牢的瞬間间狂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工火架, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鉴象,地道東北人忙菠。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像纺弊,于是被迫代替她去往敵國和親只搁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容