以下に示すルールは、複数レベル パーティションのパーティション式の変更にのみ当てはまります。
RANGE_NまたはCASE_N関数の使用
それぞれの新しいパーティション式は、RANGE_N関数またはCASE_N関数だけで定義する必要があります。行パーティション テーブルのパーティション式、または列パーティション テーブルまたは結合インデックスの行パーティション レベルをすべてどちらかの形式で統一する必要ありません。必要なのは、個々のパーティション式をRANGE_N関数またはCASE_N関数だけで作成することです。
パーティションの最大数
それぞれの新しいパーティション式で定義するパーティションの数の積を、8バイト パーティションの場合は9,223,372,036,854,775,807以下、2バイト パーティションの場合は65,535以下にする必要があります。
8バイト パーティションの場合、新しいパーティション式の最大数は62です。263は、9,223,372,036,854,775,808で、テーブルまたは結合インデックスの組み合わせパーティション式の数の有効な上限値より1大きい値になるからです。
2バイト パーティションの場合、新しいパーティション式の最大数は15です。216は、65,536、つまり、2バイト パーティションのテーブルまたは結合インデックスの組み合わせパーティション式の数の有効な上限値より1大きい値になるからです。
216 - 1は、65,535、つまり、2バイト パーティションのテーブルまたは結合インデックスの組み合わせパーティションの最大数です。
行パーティション レベルで1つのパーティションだけが定義されている状態でADD 0を指定するか、ADDを指定しないために、最大数が2以上に増えない場合に、Teradata Databaseはエラーをリクエスト元に返します。
行パーティション レベルあたり最小2つのパーティション
一般的なルールとして、行パーティション レベルのパーティション数は、以下の例外を除き、最低でも2でなければなりません。
レベル配列でADD句が指定されていないそれぞれの行パーティション レベルの場合、行パーティション レベルのパーティションの最大数は以下のようになります。
テーブルまたは結合インデックスのパーティション | 行パーティション レベルのパーティションの最大数 |
---|---|
2バイト パーティション化 | パーティションが8バイト パーティションにならない範囲の最大値。 |
8バイト パーティション化 | 9,223,372,036,854,775,807を超えない範囲の最大値。 |
行パーティション レベルの行パーティションの最大数を以下の表にまとめます。最初のレベルのパーティションの最大数は、組み合わせパーティションの最大番号が上限値を超えない範囲の最大値に設定されます。
テーブルまたは結合インデックスのパーティション | 行パーティション レベルのパーティションの最大数 |
---|---|
2バイト パーティション化 | 組み合わせパーティションの最大番号が65,535を超えない範囲の最大値。 明示的なADD句が付いているレベルが少なくとも1つある場合や、BIGINTデータ型のRANGE_N関数だけで構成されているレベルが少なくとも1つある場合、あるいは列パーティションがある場合は、他のそれぞれのレベル(第2レベルから最終レベルまで)でこの処理が繰り返されます。 |
8バイト パーティション化 | 組み合わせパーティションの最大番号が9,223,372,036,854,775,807を超えない範囲の最大値。 他のそれぞれのレベル(第2レベルから最終レベルまで)でこの処理が繰り返されます。 |
新しいパーティション式の最大数は62です。
1つまたは複数のレベルで2つ以上のパーティションが定義される場合、新しいパーティション式の数はさらに制限されることがあります。