スポンサーリンク

3-5.MySQLのテーブルの列や属性を変更する方法(CHANGE、RENAME、MODIFY)

2019年7月21日

スポンサーリンク

設計時から状況が変わり仕様変更が発生して既にテーブルを定義したあとで
列名を変更したい、または属性を変更したいといった事態がおきることがあります。

この場合、以下の構文で行うことが出来ます。

スポンサーリンク

1.構文説明

1)列名と属性を変更する場合 (CHANGEを使用)

 

この場合旧属性を同じものにすれば列名だけの変更になります。

2)列名のみを変更する場合(RENAME COLUMNを使用)

 

3)属性のみを変更する場合(MODIFYを使用)

 

スポンサードサーチ

2.説明と実行例

テーブル名「TABLE01」が以下の定義で存在しているとします。

1)列名と属性を同時に変更する

テーブル「TABLE01」の列名「dataname」を「dataname_jpn」に変更します。
同時に属性も「char(10)」から「varchar(20)」に変更します。

ALTER TABLE TABLE01 CHANGE dataname dataname_jpn varchar(20);

 

2)列名のみを変更する。

テーブル「TABLE01」の列名「dataname」を「dataname_jpn」に変更します。
属性はそのままです。

(1)CHANGEで変更する方法

ALTER TABLE TABLE01 CHANGE dataname dataname_jpn char(10);

属性を変更前と同じで記述すれば良いですがちょっと冗長ですね。

 

(2)RENAME COLUMNで記述する方法

ALTER TABLE TABLE01 RENAME COLUMN dataname to databane_jpn;
新旧の列名のみ記述するのでこちらの方法がスマートですね。

 

3)属性のみ変更する方法

ALTER TABLE TABLE01 MODIFY dataname varchar(20);

 

属性のみの変更はCHANGEでも記述可能です。
新旧の列名を同じで記述すればよいのですが、少々こちらは冗長で書き方の効率が悪いですね。

ALTER TABLE TABLE01 CHANGE dataname dataname varchar(20);

 

いかがでしたでしょうか、目的に応じていくつか書き方がありますが

最初のうちはCHANGEさえ覚えておけば列名だけでも属性だけでも対応可能です。

慣れてきたら効率の良い書き方をマスターすればいいと思います。

ブログランキング・にほんブログ村へにほんブログ村