すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:ALTER TABLE (外部テーブル)

最終更新日:Apr 16, 2025

AnalyticDB for MySQL では、ALTER TABLE 文を実行して外部テーブルのスキーマを変更できます。たとえば、テーブル構造の変更、列名の変更、列のデータ型の変更、外部テーブルへのパーティションの追加または削除を実行できます。このトピックでは、ALTER TABLE 文を実行して外部テーブルのスキーマを変更する方法について説明します。

このトピックは外部テーブルにのみ適用されます。 AnalyticDB for MySQL テーブルの ALTER TABLE 構文の詳細については、「ALTER TABLE」をご参照ください。

前提条件

AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスタが作成されていること。

列

重要

以下の構文は、V3.2.1.0 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

AnalyticDB for MySQL クラスタのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、クラスター情報 ページの 構成情報 セクションに移動します。

列を追加する

構文

ALTER TABLE db_name.table_name ADD [COLUMN] 
 {column_name column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment']
 | (column column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment'],...)}

使用上の注意

プライマリキー列を追加することはできません。

例

  • osstest1 テーブルに province という名前の VARCHAR 型の列を追加します。

    ALTER TABLE osstest1 ADD COLUMN province VARCHAR COMMENT 'Province';
  • osstest1 テーブルに 2 つの列を追加します。1 つは vip という名前の BOOLEAN 型の列、もう 1 つは tags という名前の VARCHAR 型の列です。

    ALTER TABLE osstest1 ADD COLUMN (vip BOOLEAN COMMENT 'VIP',tags VARCHAR DEFAULT 'None' COMMENT 'Tags');

列を削除する

構文

ALTER TABLE db_name.table_name DROP [COLUMN] column_name

使用上の注意

プライマリキー列を削除することはできません。

例

osstest1 テーブルから province 列を削除します。

ALTER TABLE osstest1 DROP COLUMN province;

列の名前を変更する

構文

ALTER TABLE table_name RENAME COLUMN column_name to new_column_name

例

osstest1 テーブルの city_name 列の名前を city に変更します。

ALTER TABLE osstest1 RENAME COLUMN city_name to city;

列のデータ型を変更する

構文

ALTER TABLE table_name MODIFY [COLUMN] column_name new_column_type

例

osstest1 テーブルの age 列のデータ型を INT から BIGINT に変更します。

ALTER TABLE osstest1 MODIFY COLUMN age BIGINT;

列のデフォルト値を変更する

構文

ALTER TABLE table_name MODIFY [COLUMN] column_name column_type DEFAULT constant|CURRENT_TIMESTAMP

例

osstest1 テーブルの sex 列のデフォルト値を 0 に設定します。

ALTER TABLE osstest1 MODIFY COLUMN sex INT DEFAULT 0;

列のコメントを変更する

構文

ALTER TABLE table_name MODIFY [COLUMN] column_name column_type COMMENT 'new_comment'

例

osstest1 テーブルの region 列のコメントを region に変更します。

ALTER TABLE osstest1 MODIFY COLUMN region VARCHAR COMMENT 'region';

パーティション

重要
  • パーティションに関連する構文は、Object Storage Service (OSS) パーティション外部テーブルにのみ適用されます。

  • 以下の構文は、V3.1.8.0 以降の AnalyticDB for MySQL クラスタでのみサポートされています。

    AnalyticDB for MySQL クラスタのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、クラスター情報 ページの 構成情報 セクションに移動します。

ALTER TABLE ADD PARTITION 文を使用して、パーティションまたはマルチレベルパーティションを手動で追加できます。 AnalyticDB for MySQL が OSS パスを識別してパーティションを追加する方法については、「MSCK REPAIR TABLE」をご参照ください。

パーティションを追加する

構文

ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'location';

パラメータ

パラメータ

説明

table_name

外部テーブルの名前。

(partition_key=value[,...])

追加するパーティション。

マルチレベルパーティションを追加するには、複数の partition_key=value 式を指定します。複数の式はカンマ (,) で区切ります。例: ADD PARTITION (date='20230613',city='hangzhou')。

location

パーティションの OSS パス。

たとえば、オブジェクトの OSS パスが oss://testBucketName/testfolder/p1=20230613/data.csv で、追加するパーティションが p1='20230613' の場合、パラメータを LOCATION 'oss://testBucketname/testfolder/' に設定します。

例

  • パーティションを追加します。

    ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613') LOCATION 'oss://testBucketName/testfolder/p1=20230613/';
  • マルチレベルパーティションを追加します。

    ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613',p2='hangzhou') LOCATION 'oss://testBucketName/testfolder/p1=20230613/p2=hangzhou';

パーティションを削除する

構文

ALTER TABLE table_name DROP PARTITION (partition_key=value[,...]);

パラメータ

パラメータ

説明

table_name

外部テーブルの名前。

(partition_key=value[,...])

削除するパーティション。

マルチレベルパーティションを削除するには、複数の partition_key=value 式を指定します。複数の式はカンマ (,) で区切ります。例: DROP PARTITION (date='20230613',city='hangzhou')。

例

  • パーティションを削除します。

    ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');
  • マルチレベルパーティションを削除します。

    ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613',p2='hangzhou');

関連情報

CREATE EXTERNAL TABLE