ALTER TABLE
説明
既存のテーブルを修正します。以下を含みます:
- テーブル、パーティション、インデックス、または列の名前変更
- テーブルコメントの修正
- パーティションの修正(パーティションの追加/削除とパーティション属性の修正)
- バケット法とバケット数の修正
- 列の修正(列の追加/削除と列の順序変更)
- ロールアップインデックスの作成/削除
- ビットマップインデックスの修正
- テーブルプロパティの修正
- アトミックスワップ
- 手動データバージョンのコンパクション
- 主キー永続性インデックスの削除
ヒント
この操作には、対象テーブルに対する ALTER 権限が必要です。
構文
ALTER TABLE [<db_name>.]<tbl_name>
alter_clause1[, alter_clause2, ...]
alter_clause
には以下の操作が含まれます:名前変更、コメント、パーティション、バケット、列、ロールアップインデックス、ビットマップインデックス、テーブルプロパティ、スワップ、およびコンパクション。
- 名前変更: テーブル、ロールアップインデックス、パーティション、または列の名前を変更します(v3.3.2以降でサポート)。
- コメント: テーブルコメントを修正します(v3.1以降でサポート)。
- パーティション: パーティションプロパティを修正、パーティションを削除、またはパーティションを追加します。
- バケット: バケット法とバケット数を修正します。
- 列: 列を追加、削除、または再配置、または列タイプを修正します。
- ロールアップインデックス: ロールアップインデックスを作成または削除します。
- ビットマップインデックス: インデックスを修正します(ビットマップインデックスのみ修正可能)。
- スワップ: 2つのテーブルをアトミックに交換します。
- コンパクション: ロードされたデータのバージョンをマージするための手動コンパクションを実行します(v3.1以降でサポート)。
- 永続性インデックスの削除: 共有データクラスタの主キーテーブルの永続性インデックスを削除します。v3.3.9以降でサポート。
制限と使用上の注意
- パーティション、列、およびロールアップインデックスに対する操作は、1つの ALTER TABLE ステートメントで実行できません。
- 列コメントは修正できません。
- 1つのテーブルには、同時に1つのスキーマ変更操作しか実行できません。同時に2つのスキーマ変更コマンドを実行することはできません。
- バケット、列、およびロールアップインデックスに対する操作は非同期操作です。タスクが送信された後、成功メッセージが即座に返されます。SHOW ALTER TABLE コマンドを実行して進行状況を確認し、CANCEL ALTER TABLE コマンドを実行して操作をキャンセルできます。
- 名前変更、コメント、パーティション、ビットマップインデックス、およびスワップに対する操作は同期操作であり、コマンドの返り値は実行が完了したことを示します。
名前変更
名前変更は、テーブル名、ロールアップインデックス、およびパーティション名の修正をサポートします。
テーブルの名前変更
ALTER TABLE <tbl_name> RENAME <new_tbl_name>
ロールアップインデックスの名前変更
ALTER TABLE [<db_name>.]<tbl_name>
RENAME ROLLUP <old_rollup_name> <new_rollup_name>