最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Postgresql使用update語句的方法示例

 更新時間:2024年04月13日 09:46:16   作者:一只小錦鯉_  
PostgreSQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持SQL語言以及許多高級功能,如事務(wù)、外鍵、觸發(fā)器等,下面這篇文章主要給大家介紹了關(guān)于Postgresql使用update語句的相關(guān)資料,需要的朋友可以參考下

解決問題

通過多張關(guān)聯(lián)表更新主表的字段,根據(jù)狀態(tài)更新為不同的值。

一、關(guān)聯(lián)表更新

1.關(guān)聯(lián)一張表

更新 table1 表中 num 字段的值為 table2 表中的 sum 的值

update table1 a
set a.num = b.sum
from table2 b
where a.id = b.rel_id and b.type = '1';

2.關(guān)聯(lián)多張表

更新 table1 表中 num 字段的值為 table2 和 table3 表中的 sum 字段的和

update table1 a
set a.num = b.sum + c.sum
from table2 b
left join table3 c on b.id = c.rel_id
where a.id = b.rel_id and c.type = '1';
update table1 a
set a.num = b.sum + c.sum
from table2 b, table3 c
where a.id = b.rel_id and b.id = c.rel_id and c.type = '1';

二、根據(jù)狀態(tài)更新為不同的值

根據(jù) table2 表中的 type 的值,更新 table1 表中 num 字段的值

update table1 a
set a.num = case when b.type = '1' then b.sum else b.sum + 1 end
from table2 b
where a.id = b.rel_id;

根據(jù) table3 表中的 type 的值,更新 table1 表中 num 字段的值為 table2 表中的值

update table1 a
set a.num = case when c.type = '1' then b.interest_sum else b.interest_sum + 1 end
from (
	select sum(interest) as interest_sum from table2 group by country
	) b
left join table3 c on b.rel_id = c.id
where a.rel_id = b.id and a.type = '1';

附:update對分區(qū)表使用的影響

在查詢這個一對多進(jìn)行update執(zhí)行的時候,官網(wǎng)還對其分區(qū)表的分區(qū)鍵進(jìn)行update后,會不會變更其分區(qū)進(jìn)行了解讀:

在分區(qū)表的情況下,更新一行有可能導(dǎo)致它不再滿足其所在分區(qū)的分區(qū)約束。此時,如果這個行滿足分區(qū)樹中某個其他分區(qū)的分區(qū)約束,那么這個行會被移動到那個分區(qū)。 如果沒有這樣的分區(qū),則會發(fā)生錯誤。在后臺,行的移動實際上是一次DELETE操作和一次INSERT操作。

在移動的行上的并發(fā)UPDATE或DELETE可能會收到序列化失敗錯誤。 假設(shè)會話 1 正在分區(qū)鍵上執(zhí)行UPDATE,同時,對可訪問該行的并發(fā)會話 2 在此行上執(zhí)行UPDATE或DELETE操作。 在這種情況下,會話 2 的UPDATE 或 DELETE將檢測行移動并引發(fā)序列化失敗錯誤(該錯誤始終返回 SQLSTATE 代碼"40001")。 如果發(fā)生這種情況,應(yīng)用程序可能希望重試事務(wù)。 在通常情況下,表沒有分區(qū)或沒有行移動,會話 2 將標(biāo)識新更新的行,并執(zhí)行UPDATE/DELETE在此新行版本中。

請注意,雖然行可以從本地分區(qū)移動到外表分區(qū)(如果外數(shù)據(jù)包裝器支持元組路由),但它們不能從外表分區(qū)移動到另一個分區(qū)。

總結(jié) 

到此這篇關(guān)于Postgresql使用update語句的文章就介紹到這了,更多相關(guān)Postgresql使用update內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • PostgreSQL日期時間字段類型選擇指南

    PostgreSQL日期時間字段類型選擇指南

    這段文章詳細(xì)介紹了在PostgreSQL中選擇合適的日期時間數(shù)據(jù)類型的方法,特別推薦使用timestampwithouttimezone類型來存儲精確到微秒的日期和時間,文章對比了多種日期時間數(shù)據(jù)類型的特點和適用場景,并并并強(qiáng)調(diào)了避免使用varchar等存儲日期時間的重要性
    2026-06-06
  • PostgreSQL完成按月累加的操作

    PostgreSQL完成按月累加的操作

    這篇文章主要介紹了PostgreSQL完成按月累加的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Postgresql的docker部署及圖形化界面管理

    Postgresql的docker部署及圖形化界面管理

    PostgreSQL 是一款功能強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫,以其高度的標(biāo)準(zhǔn)兼容性和可擴(kuò)展性而聞名,本文將從介紹postgresql的部署,包括nas服務(wù)端與windows可視化軟件,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • PostgreSQL拼接字符串的幾種方法簡單示例

    PostgreSQL拼接字符串的幾種方法簡單示例

    在PostgreSQL中有多種方式可以拼接字符串,這篇文章主要給大家介紹了關(guān)于PostgreSQL拼接字符串的幾種方法,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • PostgreSQL數(shù)據(jù)庫如何定期清理歸檔(pg_wal)日志

    PostgreSQL數(shù)據(jù)庫如何定期清理歸檔(pg_wal)日志

    在?般的?產(chǎn)環(huán)境中,數(shù)據(jù)庫都需要開啟歸檔模式,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫如何定期清理歸檔(pg_wal)日志的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Navicat設(shè)置PostgreSQL數(shù)據(jù)庫的表主鍵ID自增的方法

    Navicat設(shè)置PostgreSQL數(shù)據(jù)庫的表主鍵ID自增的方法

    這篇文章主要介紹了Navicat設(shè)置PostgreSQL數(shù)據(jù)庫的表主鍵ID自增的方法,文章通過圖文結(jié)合的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-06-06
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    這篇文章主要介紹了PostgreSql 重建索引的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSQL 創(chuàng)建表分區(qū)

    PostgreSQL 創(chuàng)建表分區(qū)

    在pg里表分區(qū)是通過表繼承來實現(xiàn)的,一般都是建立一個主表,里面是空,然后每個分區(qū)都去繼承它。
    2009-09-09
  • PostgreSQL查看版本信息的操作

    PostgreSQL查看版本信息的操作

    這篇文章主要介紹了PostgreSQL查看版本信息的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 最新評論

    衢州市| 轮台县| 会同县| 海丰县| 林口县| 渑池县| 射洪县| 肃北| 大洼县| 安义县| 疏勒县| 东海县| 白城市| 武陟县| 石首市| 宝清县| 九龙城区| 定南县| 城市| 西城区| 连州市| 盖州市| 沐川县| 石门县| 隆德县| 石屏县| 莱阳市| 景东| 大关县| 房山区| 高淳县| 永善县| 灌南县| 七台河市| 元江| 北流市| 蒙山县| 宁晋县| 弋阳县| 洛川县| 巍山|