テーブルのパーティションを追加または変更します。テーブルは空になっている必要があります。
非パーティション テーブルをパーティション テーブルに変更するか、または既存のパーティション テーブルのパーティションを変更するには、PARTITION BYを指定してから有効なパーティションを指定します。パーティション化には、1つ以上のパーティション式、COLUMN指定、またはその両方を組み合わて指定します。
2バイトのパーティション化では、最大15のパーティション レベルを指定できます。
8バイトのパーティション化では、最大62のパーティション レベルを指定できます。
行レベル セキュリティ制約列をパーティション列として指定することはできません。
- partitioning_expression
- RANGE_N関数またはCASE_N関数に基づかないパーティション式の結果は、暗黙的にINTEGER型にキャストするための条件を常に満たしている必要があります(まだINTEGER値ではない場合)。RANGE_NまたはCASE_Nに基づいていないパーティション式は、単一レベルのパーティション化が存在する場合にのみ許可されます。
複数の条件のINTEGER数値へのマッピングを定義するには、CASE_N関数を使用します。CASE_Nパーティション レベルのパーティションの最大数は、パーティション制約テキストの最大サイズ、リクエスト テキストのサイズ制限などの要因によって制限されます。
行レベル セキュリティ制約列を含むパーティション レベルを持つようにテーブルを変更することはできません。
パーティション式は外部またはSQL UDF、あるいは次のデータ型を持つ列を指定することはできません。
- BLOB
- CLOB
- ARRAY/VARRAY
- UDT
- Period
- XML
- Geospatial
- JSON
- DATASET
ただし、BEGINバウンド関数とENDバウンド関数を使用すると、Period列を間接的に参照できます。 例: ENDバインド関数を使用したCASE_Nパーティション式と<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。
- COLUMN
- パーティションには、テーブルがプライマリ インデックスを持たない(ALTER TABLEでNO PRIMARY INDEXを指定している)場合にのみ、列パーティション レベルを含めることができます。