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

合并分區

PolarDB PostgreSQL版(兼容Oracle)支持合并兩個分區或子分區。本文詳細介紹了其語法及示例。

語法說明

合并分區

通過ALTER TABLE…MERGE PARTITION命令將兩個分區合并為一個分區,并在新分區中包含之前兩個分區的內容。

ALTER TABLE table_name MERGE PARTITIONS
		partition_name , partition_name 
		INTO PARTITION  new_part [TABLESPACE tablespace_name] ;
說明
  • ALTER TABLE ... MERGE PARTITION命令可以在現有的LIST或RANGE分區表中將兩個分區合并成一個分區,不能在HASH分區表中執行。

  • 一個表具有的分區數量沒有上限。

  • 執行ALTER TABLE ... MERGE PARTITION命令時,PolarDB PostgreSQL版(兼容Oracle)將創建一個新分區,包含舊分區的內容,包括TABLESPACE子句以指定分區將駐留的表空間。如果未指定表空間,則分區將位于默認表空間中。如果表已建立索引,則索引將在新分區上創建。

  • 您必須是表的所有者或具有超級用戶(或管理)的權限,才可以執行ALTER TABLE ... MERGE PARTITION命令。

合并子分區

通過ALTER TABLE…MERGE SUBPARTITION命令將兩個子分區合并為一個子分區,并在新子分區中包含之前兩個子分區的內容。

ALTER TABLE table_name MERGE SUBPARTITIONS
		partition_name , partition_name 
		INTO SUBPARTITION  new_part [TABLESPACE tablespace_name] ;
說明
  • ALTER TABLE ... MERGE SUBPARTITION命令可以在現有的LIST或RANGE分區表中將兩個子分區合并成一個子分區,不能在HASH分區表中執行。

  • 一個表具有的分區數量沒有上限。

  • 執行ALTER TABLE ... MERGE SUBPARTITIO命令時,PolarDB PostgreSQL版(兼容Oracle)將創建一個新的子分區,包含舊子分區的內容,包括TABLESPACE子句以指定分區將駐留的表空間。如果未指定表空間,則分區將位于默認表空間中。如果表已建立索引,則索引將在新分區上創建。

  • 您必須是表的所有者或具有超級用戶(或管理)的權限,才可以執行ALTER TABLE ... SUBMERGE PARTITION命令。

示例

合并分區

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
  (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'),
  (20, '3788a', 'INDIA', '01-Mar-2012', '75000'),
  (40, '9519b', 'US', '12-Apr-2012', '145000'),
  (20, '3788a', 'PAKISTAN', '04-Jun-2012', '37500'),
  (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'),
  (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'),
  (40, '4788a', 'US', '23-Sept-2012', '4950'),
  (40, '4788b', 'US', '09-Oct-2012', '15000'),
  (20, '4519a', 'INDIA', '18-Oct-2012', '650000'),
  (20, '4519b', 'INDIA', '2-Dec-2012', '5090');
  
ALTER TABLE sales SPLIT PARTITION americas 
  VALUES ('US')
	INTO (PARTITION us, PARTITION canada);
 
ALTER TABLE sales MERGE PARTITIONS us, canada
	INTO PARTITION americas;

合并子分區

CREATE TABLE sales
(
  dept_no     number,   
  part_no     varchar2,
  country     varchar2(20),
  date        date,
  amount      number
)
PARTITION BY LIST(country)
  SUBPARTITION BY RANGE(date)
(
  PARTITION europe VALUES('FRANCE', 'ITALY')
    (
      SUBPARTITION europe_2011 
        VALUES LESS THAN('2012-Jan-01'),
      SUBPARTITION europe_2012 
        VALUES LESS THAN('2013-Jan-01')
    ),
  PARTITION asia VALUES('INDIA', 'PAKISTAN')
    (
      SUBPARTITION asia_2011 
        VALUES LESS THAN('2012-Jan-01'),
      SUBPARTITION asia_2012 
        VALUES LESS THAN('2013-Jan-01')
    ),
  PARTITION americas VALUES('US', 'CANADA')
    (
      SUBPARTITION americas_2011 
        VALUES LESS THAN('2012-Jan-01'),
      SUBPARTITION americas_2012 
        VALUES LESS THAN('2013-Jan-01')
    )
);
SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS where table_name = 'SALES';
INSERT INTO sales VALUES
  (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'),
  (20, '3788a', 'INDIA', '01-Mar-2012', '75000'),
  (40, '9519b', 'US', '12-Apr-2012', '145000'),
  (20, '3788a', 'PAKISTAN', '04-Jun-2012', '37500'),
  (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'),
  (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'),
  (40, '4788a', 'US', '23-Sept-2012', '4950'),
  (40, '4788b', 'US', '09-Oct-2012', '15000'),
  (20, '4519a', 'INDIA', '18-Oct-2012', '650000'),
  (20, '4519b', 'INDIA', '2-Dec-2012', '5090');
SELECT tableoid::regclass, * FROM sales;
  
ALTER TABLE sales 
  SPLIT SUBPARTITION americas_2012 
  AT('2012-Jun-01')
  INTO
  (
    SUBPARTITION americas_p1_2012, 
    SUBPARTITION americas_p2_2012
  );
  


ALTER TABLE sales 
  MERGE SUBPARTITIONS americas_p1_2012 ,americas_p2_2012
  INTO  SUBPARTITION americas_2012;