日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

PolarDB PostgreSQL版附加/分離分區(qū)的語法完全兼容PostgreSQL。本文詳細(xì)介紹了其語法及示例。

概述

  • 附加(Attach)分區(qū): 將一個普通表附加到分區(qū)表中,成為分區(qū)表的一個分區(qū)。

  • 分離(Detach)分區(qū): 將一個分區(qū)表的分區(qū)分離出來,成為一個普通表。它避免了將分區(qū)表中的數(shù)據(jù)直接刪除,而是將其分離出來作為一個普通表移至別處。

語法說明

說明

PolarDB PostgreSQL版完全兼容PostgreSQL。關(guān)于附加/分離分區(qū)的詳細(xì)語法說明,請參考PostgreSQL文檔

附加分區(qū)

ALTER TABLE [ IF EXISTS ] name
    ATTACH PARTITION partition_name { FOR VALUES partition_bound_spec | DEFAULT }

上述語法即表示附加一個現(xiàn)有表(該表本身可能已分區(qū))作為目標(biāo)表的分區(qū)。 您可以使用 FOR VALUES 將表附加為特定值的分區(qū),或者使用 DEFAULT 將表附加為默認(rèn)分區(qū)。

在這個附加的過程中,對于目標(biāo)表中的每個索引,都會在附加的表中創(chuàng)建一個對應(yīng)的索引。如果對應(yīng)索引已存在,則將附加到目標(biāo)表的索引,如同執(zhí)行 ALTER INDEX ATTACH PARTITION 一樣。

說明

如果現(xiàn)有表是外部表,并且目標(biāo)表上有 UNIQUE 索引,則當(dāng)前不允許將該表附加為目標(biāo)表的分區(qū)。

分離分區(qū)

ALTER TABLE [ IF EXISTS ] name
    DETACH PARTITION partition_name [ CONCURRENTLY | FINALIZE ]

上述語法即表示將目標(biāo)分區(qū)表中的指定分區(qū)分離出來。分離的分區(qū)繼續(xù)作為獨立表存在,但不再與其分離的表有任何聯(lián)系。 經(jīng)過分離,目標(biāo)分區(qū)表和分離出來的獨立表具有如下變化:

  • 附加到目標(biāo)表索引的任何索引都將被分離出來。

  • 任何作為目標(biāo)表中觸發(fā)器的克隆而創(chuàng)建的觸發(fā)器都將被刪除。

  • 在外鍵約束中引用此分區(qū)的任何表上都會獲得共享鎖。例如:假設(shè)分區(qū)表A引用了分區(qū)B作為外鍵,若從分區(qū)表B中分離一個分區(qū)B_p1,則會對分區(qū)表A加上共享鎖。

上述語法中還可以指定CONCURRENTLYFINALIZE

  • 如果指定CONCURRENTLY,則會在低級別鎖定上運行,以避免阻塞可能正在訪問分區(qū)表的其他會話。

    在這種模式下,內(nèi)部使用兩個事務(wù):

    • 在第一個事務(wù)期間,對父表和分區(qū)都采用SHARE UPDATE EXCLUSIVE鎖,并將分區(qū)標(biāo)記為正在進(jìn)行分離; 此時,事務(wù)已提交,并且使用分區(qū)表的所有其他事務(wù)都將等待。

    • 所有這些事務(wù)完成后,第二個事務(wù)將獲取分區(qū)表上的SHARE UPDATE EXCLUSIVE和分區(qū)上的ACCESS EXCLUSIVE,并且分離過程完成。 與分區(qū)約束重復(fù)的CHECK約束將添加到分區(qū)中。

    說明

    CONCURRENTLY不能在事務(wù)塊中運行,并且如果分區(qū)表包含默認(rèn)分區(qū),則不允許使用CONCURRENTLY。

  • 如果指定了FINALIZE,則等待先前取消或中斷的DETACH CONCURRENTLY調(diào)用將完成。

示例

附加分區(qū)

將cities_partdef附加到cities分區(qū)表中作為默認(rèn)分區(qū):

ALTER TABLE cities
    ATTACH PARTITION cities_partdef DEFAULT;

分離分區(qū)

將分區(qū)measurement_y2015m12從measurement分區(qū)表中分離出來,作為一個獨立的表。

ALTER TABLE measurement
    DETACH PARTITION measurement_y2015m12;