MariaDB-コマンドの変更

ALTERコマンドは、既存のテーブルの構造を変更する方法を提供します。つまり、列の削除または追加、インデックスの変更、データ型の変更、名前の変更などの変更を行います。また、メタデータロックがアクティブな場合、ALTERは変更の適用を待機します。

ALTERを使用して列を変更する

ALTERをDROPと組み合わせると、既存の列が削除されます。ただし、その列が唯一の残りの列である場合は失敗します。

以下の例を確認してください-

mysql> ALTER TABLE products_tbl DROP version_num;

ALTER ... ADDステートメントを使用して列を追加します-

mysql> ALTER TABLE products_tbl ADD discontinued CHAR(1);

キーワードFIRSTおよびAFTERを使用して、列の配置を指定します-

ALTER TABLE products_tbl ADD discontinued CHAR(1) FIRST;
ALTER TABLE products_tbl ADD discontinued CHAR(1) AFTER quantity;

FIRSTおよびAFTERキーワードは、ALTER ... ADDステートメントにのみ適用されることに注意してください。さらに、テーブルを再配置するには、テーブルを削除してから追加する必要があります。

ALTERステートメントでMODIFY句またはCHANGE句を使用して、列の定義または名前を変更します。句の効果は似ていますが、構文が大幅に異なります。

以下に示すCHANGEの例を確認してください-

mysql> ALTER TABLE products_tbl CHANGE discontinued status CHAR(4);

CHANGEを使用するステートメントで、元の列を指定してから、それを置き換える新しい列を指定します。以下のMODIFYの例を確認してください-

mysql> ALTER TABLE products_tbl MODIFY discontinued CHAR(4);

ALTERコマンドでは、デフォルト値を変更することもできます。例を確認する-

mysql> ALTER TABLE products_tbl ALTER discontinued SET DEFAULT N;

また、DROP句と組み合わせてデフォルトの制約を削除するために使用することもできます-

mysql> ALTER TABLE products_tbl ALTER discontinued DROP DEFAULT;

ALTERを使用したテーブルの変更

TYPE句を使用してテーブルタイプを変更します-

mysql> ALTER TABLE products_tbl TYPE = INNODB;

RENAMEキーワードを使用してテーブルの名前を変更します-

mysql> ALTER TABLE products_tbl RENAME TO products2016_tbl;