tft每日頭條

 > 科技

 > postgresql 查詢并設置新的列名

postgresql 查詢并設置新的列名

科技 更新时间:2025-01-12 10:40:04

我們都知道在oracle數據庫中有一個merge的功能,那就是實現在發現某條記錄對應的關鍵字在數據表中存在時就根據關鍵字做更新數據操作,若在數據表中沒有發現此關鍵字時,那麼就直接做新增操作

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)1

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.創建一個簡單的數據庫表

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)2

2.執行類oracle的merge的pg數據庫對應語句,出師不利,報錯了

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)3

3.創建關鍵字

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)4

4.重新執行SQL語句

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)5

5.查詢插入數據

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)6

6.再次執行修改語句

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)7

從上面步驟可以看出,在pg裡面實現數據的如果存在則更新,不存在則插入需要注意

postgresql 查詢并設置新的列名(淺談postgresql數據庫中更新數據)8

注意,使用 on confict,需要這個建立約束,否則錯誤如下

[Err] ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification

本文由美麗的程序猿原創并首發頭條平台,轉載請标明出處,歡迎關注美麗的程序猿頭條号,還有更多程序猿可能碰到的各種技術小問題

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved