列パーティション テーブルから列を削除する操作 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage
列パーティション テーブルから列を削除する操作に関するルールと制約事項を以下にまとめます。
  • 列パーティション番号が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つの列パーティションを含む)、追加できる列パーティションの数、列パーティションの最大数、列パーティションの最大番号に影響はありません。