MySQL,ALTER TABLEでカラムを別の列に移動する

スポンサーリンク

鍛錬 909

MySQL,ALTER TABLEでカラムを別の列に移動する

テーブルに存在しているカラムを別の列に移動する(カラムの順番を変更する)には、ALTER TABLE に MODIFY を付加し、加えて FIRST または AFTER を付加します。
 
使用方法は、以下に示す通りです。

先頭列にカラムを移動する

ALTER TABLE テーブル名 MODIFY カラム名 データ型 FIRST;

上記を実行すると、「カラム名」に指定したカラムが先頭列に移動します。
 
指定した列にカラムを移動する

ALTER TABLE テーブル名 MODIFY カラム名1 データ型 AFTER カラム名2;

上記を実行すると、「カラム名2」の後ろに「カラム名1」が移動します。

スポンサーリンク

実行結果

以下は、既に存在するカラムを指定した列に移動しています。

今回は、3列目に存在しているカラム「price (データ型 int)」を、まずは「1列目」に移動させ、その後に「2列目」へ移動させています。

移動前:

id name price
1 apple 250
2 orange 300
3 grape 500

1回目の移動後:

price id name
250 1 apple
300 2 orange
500 3 grape

2回目の移動後:

id price name
1 250 apple
2 300 orange
3 500 grape
mysql> 
mysql> select * from fruits;
+------+--------+-------+
| id   | name   | price |
+------+--------+-------+
|    1 | apple  |   250 |
|    2 | orange |   300 |
|    3 | grape  |   500 |
+------+--------+-------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> alter table fruits modify price int first;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> 
mysql> 
mysql> select * from fruits;
+-------+------+--------+
| price | id   | name   |
+-------+------+--------+
|   250 |    1 | apple  |
|   300 |    2 | orange |
|   500 |    3 | grape  |
+-------+------+--------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> alter table fruits modify price int after id;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> 
mysql> 
mysql> select * from fruits;
+------+-------+--------+
| id   | price | name   |
+------+-------+--------+
|    1 |   250 | apple  |
|    2 |   300 | orange |
|    3 |   500 | grape  |
+------+-------+--------+
3 rows in set (0.00 sec)

 
上記に示した通り、既に存在するカラムを別の列に移動することができました。

タイトルとURLをコピーしました