我們都知道在oracle數據庫中有一個merge的功能,那就是實現在發現某條記錄對應的關鍵字在數據表中存在時就根據關鍵字做更新數據操作,若在數據表中沒有發現此關鍵字時,那麼就直接做新增操作
SQL:
merge into bonuses d
using (select employee_id, salary, department_id from employees
where department_id = 80) s
on (d.employee_id = s.employee_id)
when matched thenupdateset d.bonus = d.bonus s.salary*.01
whennot matched theninsert (d.employee_id, d.bonus)
values (s.employee_id, s.salary*0.01);
在中國加上脫ioe的進程中,很多公司都在選擇适合自己的數據庫,所以開源的postgresql就進入了大家的視線
今天我們就來說說PG數據庫的merge功能
如下:
1.創建一個簡單的數據庫表
2.執行類oracle的merge的pg數據庫對應語句,出師不利,報錯了
3.創建關鍵字
4.重新執行SQL語句
5.查詢插入數據
6.再次執行修改語句
從上面步驟可以看出,在pg裡面實現數據的如果存在則更新,不存在則插入需要注意
注意,使用 on confict,需要這個建立約束,否則錯誤如下
[Err] ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification
本文由美麗的程序猿原創并首發頭條平台,轉載請标明出處,歡迎關注美麗的程序猿頭條号,還有更多程序猿可能碰到的各種技術小問題
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!