PARTITION BY - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

テーブルのパーティションを追加または変更します。テーブルは空になっている必要があります。

非パーティション テーブルをパーティション テーブルに変更するか、または既存のパーティション テーブルのパーティションを変更するには、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を指定している)場合にのみ、列パーティション レベルを含めることができます。