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

PolarDB PostgreSQL版(兼容Oracle)支持交換兩個(gè)分區(qū)或者子分區(qū)的內(nèi)容。本文詳細(xì)介紹了其語法及示例。

語法說明

交換分區(qū)

ALTER TABLE <target_table>
  EXCHANGE PARTITION <target_partition>
  WITH TABLE <source_table>
  [(INCLUDING | EXCLUDING) INDEXES]
  [(WITH | WITHOUT) VALIDATION];

交換子分區(qū)

ALTER TABLE <target_table>
  EXCHANGE SUBPARTITION <target_subpartition>
  WITH TABLE <source_table>
  [(INCLUDING | EXCLUDING) INDEXES]
  [(WITH | WITHOUT) VALIDATION];
  • ALTER TABLE…EXCHANGE PARTITION命令將現(xiàn)有表與分區(qū)交換。 如果您計(jì)劃向分區(qū)表添加大量數(shù)據(jù),可以使用ALTER TABLE…EXCHANGE PARTITION命令來實(shí)現(xiàn)批量加載。 您還可以使用ALTER TABLE…EXCHANGE PARTITION命令刪除舊的或不需要的數(shù)據(jù)進(jìn)行存儲。

  • 當(dāng)ALTER TABLE…EXCHANGE PARTITION命令執(zhí)行完成時(shí),原來位于target_partition中的數(shù)據(jù)將交換至source_table中,原來位于source_table中的數(shù)據(jù)將交換至target_partition中。

  • ALTER TABLE…EXCHANGE PARTITION命令可以交換LIST、RANGE或HASH分區(qū)表中的分區(qū)。 source_table的結(jié)構(gòu)必須與target_table的結(jié)構(gòu)匹配(兩個(gè)表必須具有匹配的列和數(shù)據(jù)類型),并且表中包含的數(shù)據(jù)必須遵守分區(qū)約束。

  • 如果使用EXCHANGE PARTITION指定INCLUDING INDEXES子句,則將交換target_partitionsource_table中的匹配索引。 target_partition中與source_table中不匹配的索引將被重建,反之亦然(即source_table中與target_partition中不匹配的索引也會(huì)被重建)。

  • 如果使用EXCHANGE PARTITION指定EXCLUDING INDEXES子句,則將交換target_partitionsource_table中匹配的索引,但source_table中與target_partition中不匹配的索引將被標(biāo)記為無效,反之亦然(即target_partition中與source_table中不匹配的索引也被標(biāo)記為無效)。

  • 使用的匹配索引項(xiàng)是指具有相同屬性的索引。例如,由CREATE INDEX命令確定的排序順序、升序/降序方向、空值在前/空值在后的排序等。

  • 如果INCLUDING INDEXESEXCLUDING INDEXES都被省略,則默認(rèn)操作是EXCLUDING INDEXES行為。

  • 與上面描述相同的行為適用于與EXCHANGE SUBPARTITION子句一起使用的target_subpartition

  • 您必須擁有一個(gè)表才能對該表調(diào)用ALTER TABLE...EXCHANGE PARTITIONALTER TABLE...EXCHANGE SUBPARTITION命令。

示例

CREATE TABLE sales
(
  dept_no     number,
  part_no     varchar2,
  country     varchar2(20),
  date        date,
  amount      number
)
PARTITION BY LIST(country)
(
  PARTITION europe VALUES('FRANCE', 'ITALY'),
  PARTITION asia VALUES('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES('US', 'CANADA')
);

INSERT INTO sales VALUES
  (40, '9519b', 'US', '12-Apr-2012', '145000'),
  (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'),
  (20, '3788a', 'INDIA', '01-Mar-2012', '75000'),
  (20, '3788a', 'PAKISTAN', '04-Jun-2012', '37500'),
  (10, '9519b', 'ITALY', '07-Jul-2012', '15000'),
  (10, '9519a', 'FRANCE', '18-Aug-2012', '650000'),
  (10, '9519b', 'FRANCE', '18-Aug-2012', '650000'),
  (20, '3788b', 'INDIA', '21-Sept-2012', '5090'),
  (20, '4519a', 'INDIA', '18-Oct-2012', '650000'),
  (20, '4519b', 'INDIA', '2-Dec-2012', '5090');

CREATE TABLE n_america
(
  dept_no     number,
  part_no     varchar2,
  country     varchar2(20),
  date        date,
  amount      number
);

INSERT INTO n_america VALUES
  (40, '9519b', 'US', '12-Apr-2012', '145000'),
  (40, '4577b', 'US', '11-Nov-2012', '25000'),
  (30, '7588b', 'CANADA', '14-Dec-2012', '50000'),
  (30, '9519b', 'CANADA', '01-Feb-2012', '75000'),
  (30, '4519b', 'CANADA', '08-Apr-2012', '120000'),
  (40, '3788a', 'US', '12-May-2012', '4950'),
  (40, '4788a', 'US', '23-Sept-2012', '4950'),
  (40, '4788b', 'US', '09-Oct-2012', '15000');

ALTER TABLE sales
  EXCHANGE PARTITION americas
  WITH TABLE n_america;