* - リスト・パーティション表のパーティションのマージは、「レンジ・パーティションのマージ」で説明されている内容と同様です。ただし、2つの* - リスト・パーティションをマージする場合、結果の新しいパーティションは、サブパーティション・テンプレートからサブパーティションの説明を継承します(サブパーティション・テンプレートが存在する場合)。サブパーティション・テンプレートがない場合には、新しいパーティションに単一のデフォルトのサブパーティションが作成されます。
時間隔 - リスト・パーティション表の場合、マージできるのは、隣接する2つの時間隔パーティションか、最高位のレンジ・パーティションと最初の時間隔パーティションのみです。「時間隔パーティションのマージ」に説明されているように、時間隔 - リスト・パーティション表で時間隔をマージすると遷移点が移動します。
次の文では、レンジ - リスト・パーティション化されたstripe_regional_sales
表の2つのパーティションをマージします。表には、サブパーティション・テンプレートがあります。
ALTER TABLE stripe_regional_sales MERGE PARTITIONS q1_1999, q2_1999 INTO PARTITION q1_q2_1999 STORAGE(MAXEXTENTS 20);
指定されていないパーティションでは表レベルのデフォルトが継承されますが、この新しいパーティションにはいくつかの新しい物理属性が指定されています。結果の新しいパーティションq1_q2_1999
は、パーティションq2_1999
の上限値と、表のサブパーティション・テンプレートの説明からサブパーティションの値リストの説明を継承しています。
結果のパーティションのデータには、両方のパーティションのデータが含まれます。ただし、データベースによりエラーが戻される場合があります。これは、次に示す両方の条件に当てはまる場合には、データが新しいパーティション外にマップされているためです。
このエラー条件は、デフォルトのサブパーティション・テンプレートに必ずデフォルトのパーティションを指定することでなくすことができます。
マージされたサブパーティションの一部のリテラル値がサブパーティション・テンプレートに含まれていない。
サブパーティション・テンプレートにデフォルトのパーティション定義が含まれていない。