列パーティション テーブルから列を削除する操作に関するルールと制約事項を以下にまとめます。
- 列パーティション番号が1より小さくなることはありません。また、テーブルや結合インデックスの列パーティションの最大番号より大きくなることもありません。列パーティション番号は、列パーティションを定義した順序に対応するとは限りません。
- 列パーティション テーブルの列は、2つの内部使用パーティション以外は一切削除できず、Teradata Databaseはエラーをリクエスト元に返します。
- 内部使用の2つの列パーティションをテーブルから削除することはできません。
- 列パーティションからすべての列を削除すると、次の状態が発生します。
- 列パーティションが削除されます。
- 削除した列パーティションの列パーティション番号が、他の列パーティションの追加時に使用できる状態になります。
システムは、定義済みの列パーティションの数を1つ減らし、追加できる列パーティションの数を1つ増やします。
テーブルの列パーティションの最大数と列パーティションの最大番号に影響はありません。
- 列パーティションを削除するのと同じALTER TABLEリクエストの中で複数の列パーティションを追加する場合、システムは、新しい列パーティションを追加する前に指定の列パーティションを削除します。
- 列パーティションから既存の列をすべて削除することは可能です。その場合でも、その同じALTER TABLEリクエストでその列パーティションに新しい列を追加するのであれば、システムはそのパーティションを削除しません。
- 列パーティションから列を削除し、変更された列パーティションにその他の列がある場合:
- 列パーティションから列セットを削除する場合に、その列パーティションがシステム設定の列パーティション形式であると、システムは、その列パーティション形式を再設定します。その形式の選択は、列パーティションに残っている列セットの列パーティション値のサイズや他の要素(列パーティションの列パーティション値が固定長か可変長かなど)に基づきます。
原則として、Teradata Databaseは、狭い(256バイト以下の)列パーティションをCOLUMN形式にし、広い列パーティションをROW形式にします。
Teradata Databaseが列パーティションで選択したシステム列パーティション形式を確認するには、HELP COLUMNリクエストを使用するか、データ ディクショナリ ビューで該当する行を取得します。Teradata提供ビューの一覧については、<Teradata Vantage™ - データ ディクショナリ、B035-1092>を参照してください。
- 列セットを削除した列パーティションがユーザー指定のCOLUMN形式、ROW形式、またはSYSTEM形式の場合、Teradata Databaseは、変更後の列パーティションの形式を変更しません。
- Teradata Databaseは、変更後の列パーティションに別の列パーティション番号を割り当てます。
- これらの操作を実行しても、定義済みの列パーティションの数(内部使用の2つの列パーティションを含む)、追加できる列パーティションの数、列パーティションの最大数、列パーティションの最大番号に影響はありません。
- 列パーティションから列セットを削除する場合に、その列パーティションがシステム設定の列パーティション形式であると、システムは、その列パーティション形式を再設定します。その形式の選択は、列パーティションに残っている列セットの列パーティション値のサイズや他の要素(列パーティションの列パーティション値が固定長か可変長かなど)に基づきます。