このリクエストは、列をグループ化するパーティションではなく列リストを使用して同じパーティションに割り当てられた列cとdのある列パーティション テーブルを作成します。
CREATE MULTISET TABLE t37 ( a INTEGER, b INTEGER, (c INTEGER, d INTEGER)) PARTITION BY (RANGE_N(a BETWEEN 1 AND 10 EACH 1), COLUMN);
これにより、t37に対して次のテーブル定義が生成されます。
CREATE MULTISET TABLE t37 ,NO FALLBACK ,NO BEFORE JOURNAL , NO AFTER JOURNAL ,CHECKSUM = DEFAULT ,DEFAULT MERGEBLOCKRATIO ( a INTEGER, b INTEGER, c INTEGER, d INTEGER) NO PRIMARY INDEX PARTITION BY (RANGE_N(a BETWEEN 1 AND 10 EACH 1), COLUMN(a,b));
次にテーブルt37aを、テーブルt37からそのデータはコピーせずに定義をコピーして作成します。
CREATE TABLE t37a AS t37 WITH NO DATA;
これにより、t37aに対して次のテーブル定義が生成されます。テーブルt37aは、テーブルt37と同じPARTITION BY句と同じ列グループを持ちます。
CREATE TABLE t37a ,NO FALLBACK ,NO BEFORE JOURNAL , NO AFTER JOURNAL ,CHECKSUM = DEFAULT ,DEFAULT MERGEBLOCKRATIO ( a INTEGER, b INTEGER, c INTEGER, d INTEGER) NO PRIMARY INDEX PARTITION BY (RANGE_N(a BETWEEN 1 AND 10 EACH 1), COLUMN(a,b));
次に、テーブルt37の定義をコピーしてグループ化を変更し、テーブルt37bを作成して、以下のようにテーブル列リストを指定します。
CREATE TABLE t37b (a, (b, c), d) AS t37 WITH NO DATA;
これにより、t37bのテーブル定義が次のように生成されます。テーブルt37bではPARTITION BY句はテーブルt37のように作用しますが、列グループ化はt37bのCREATE TABLEリクエストのSQLテーブル列リストに指定されているようになります。
CREATE MULTISET TABLE t37b, NO FALLBACK, NO BEFORE JOURNAL , NO AFTER JOURNAL, CHECKSUM = DEFAULT, DEFAULT MERGEBLOCKRATIO ( a INTEGER, b INTEGER, c INTEGER, d INTEGER) NO PRIMARY INDEX PARTITION BY (RANGE_N(a BETWEEN 1 AND 10 EACH 1), COLUMN(a,d) ADD 10);