すべてのプロダクト
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