列パーティション テーブルの変更に関するルールと制約事項 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

以下に、列パーティション テーブルを変更する際のルールと制約を示します。

MODIFY NO PRIMARY

MODIFY NO PRIMARYを指定する場合は、NOT PARTITIONEDオプションまたはPARTITION BY句を指定する必要があります。

また、列パーティション テーブルに加えて、非固有NoPIテーブルにMODIFY NO PRIMARYを指定することもできます。

PARTITION BY句でのCOLUMNパーティションの指定

非パーティション プライマリ インデックスまたは基本AMPインデックスのないテーブルに対し、MODIFY NO PRIMARYおよびNOT PARTITIONEDを指定することはできません。

SETテーブルをMODIFY NO PRIMARYのあるテーブルに設定する場合、テーブルの種類はデフォルトでMULTISETに変更されます。テーブルと結合インデックスの変更に関するルール(データが入っている場合と入っていない場合)を参照してください。

次の場合、変更されるテーブルに行を含めることはできません。
  • プライマリ インデックスまたは基本AMPインデックスのあるテーブルが、プライマリ インデックスのない状態に変更される場合。
  • NoPIまたは列パーティション テーブルが、プライマリ インデックスまたは基本AMPインデックスのある状態に変更される場合。
  • パーティション テーブルが、パーティションのない状態に変更される場合。
  • 非パーティション テーブルが、パーティションのある状態に変更される場合。
  • パーティション テーブルが、PARTITION BY句を使用して新しいパーティションのある状態に変更される場合。

DROP句とADD RANGE句を使用した新しいパーティション化

新しいパーティションがある状態にパーティション テーブルを変更するには、DROP RANGE#LnオプションとADD RANGE#Lnオプションを使用して、新しいパーティション式を定義する必要があります。これらのオプションは、一連の範囲の最初または最後以外の範囲を削除せず、少なくとも1つの範囲を残し、結果的に最初と最後になる範囲の間に範囲を追加しません。

テーブルにマルチレベル パーティションがあり、パーティション式の変更にNO RANGE [OR UNKNOWN]またはUNKNOWNのパーティションの削除が含まれている場合、そのパーティション式は、以前に変更されたことがないパーティション式でなければなりません。

1つのレベルのパーティションの数は、1からそのレベルで定義されている最大数までの間の数にならなければなりません。