merge同時包含增 改 刪

2022-02-20 19:28:57 字數 638 閱讀 1279

我們都知道oracle merge可以用來增和改,很少用它來刪除。但是有時候我們仍然需要該特性,以提高效能,典型的場景就是將業務庫邏輯刪除的記錄同步到查詢庫的時候,做真正的物理刪除,這個時候merge的delete子句就再恰當不過了。如下所示:

merge into

ausing (employee) b

on (a.employeeid = b.employeeid and a.year

= b.year

)when matched then

update

set balance =

b.balance

delete

where b.is_deleted ='1

'

特別說明:

delete字句只能寫在matched情況中,不匹配時無法刪除會報錯。

當delete跟在update字句之後時,delete字句是針對update字句修改後的資料進行過濾的。比如需要刪除所有c欄位="1"的資料,update字句將所有資料的c欄位都更新為1,那麼會刪除所有資料,而不是原本為1的資料。

但是在jdbc的addbatch上,似乎merge的支援不像mysql那麼直接,需要先insert臨時表,然後merge,這樣的效率最佳。

js的增改刪

insertbefore插入元素 語法 父元素.insertbefore 引數1,引數2 引數1 需要插入新的元素 引數2 插入到哪個元素的前面 1.建立新的元素 2.原本存在的元素 3.需要插入的元素 獲取元素 var ul document.getelementbyid ul var li2 d...

hive增改刪字段

1 修改欄位名方法 alter table 表名 change 舊欄位 新字段 型別 2 新增字段 use mart flow test alter table detail flow test add columns original union id string 或者 alter table ...

SQL之表的增 改 刪

在說明表的增改刪之前,我們先來介紹一下組成乙個關係型資料庫的基本結構。由圖1 2可以看出乙個關係型資料庫主要由三大結構組成,分別是資料庫 表 字段。在頂層的是rdbms 管理資料庫的軟體 在rdbms之下是建立的實際資料庫,每個資料庫又可以包含乙個或多個表,嚴格地說資料庫可以不包含表,但這樣的資料庫...