Oracle Merge,合併Insert或Update的高階SQL語法

有時候為了避免資料庫中相同的資料重複新增,因此早期的作法是先select count看看有沒有資料,如果有就update,沒有就insert,這樣就可以避免上述的情況。

這樣是一種方式沒有錯,但其實有更佳的方式那就是使用merge語法,本篇介紹的是在Oracle中怎麼做,其他資料庫也有支援喔。

MERGE TableA AS target
USING ( SELECT @sid, @column1, @column2 ) AS source
ON target.[sid] = source.[sid]
WHEN MATCHED THEN
UPDATE SET target.[column1] = source.[column1],target.[column2] = source.[column2]
WHEN NOT MATCHED THEN
INSERT([sid], [column1], [column1]) VALUES(source.[sid], source.[column1], source.[column1]);

至於例子中的@sid ,在C Sharp中當然就是用Parameters.AddWithValue的方式去帶入了喔。

More From Forest Beat

桜のフリ

如何調整Node-RED只能只用4GB記憶體的上限

一般來說Node-RED處理資料時,可能需要把數據暫存起來,跑迴圈,資料需Keep住,最後才組合,然後Node-RED有自己有記憶體管理機制,會進行垃圾收集與釋放的,是不太需要調整記憶體上限,但是也不無可能處理大量資料,或是流程沒寫好,結果記憶體就會爆掉,如何改上限,請看後續分享。
技術
0
minutes
横浜の夜景(赤レンガ倉庫)

設定Node-RED自動啟動與登入密碼

Node-RED是基於User角色去使用的工具且可以執行Linex指令,因此如果使用root或具有sudo的帳號啟動,那又沒有把密碼設定起來,可想而知,無疑就是提供給駭客一個大大大後門,然後還歡迎光臨,該主機不淪為跳板才怪。本編教你怎麼把自動啟動與密碼設定起來。
技術
0
minutes
桜の花びらのフリ

在Ubuntu 22.4上安裝Node-RED

Node-RED簡單的說就是一個使用JavaScript語言的視覺化、流程導向(flow-based)的線上開發工具。
技術
0
minutes
バーベキュー用木炭のフリ

putty bug: No supported authentication methods avaliable

最近將ppt金鑰對用在putty上,結果連線一直失敗,下載最新版的putty就可以改善。
技術
0
minutes
spot_imgspot_img