テーブルの特定列の後ろに列を追加する方法のご紹介です。
以下のテーブルを例に考えてみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
mysql> show columns from kamo_table; +-----------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------+------+-----+-------------------+-----------------------------+ | id | int(11) | NO | PRI | 0 | | | name | text | NO | | NULL | | | update_ts | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | | test_int | int(11) | NO | | NULL | | +-----------+-----------+------+-----+-------------------+-----------------------------+ 4 rows in set (0.00 sec) mysql> |
name列の後ろに新しい列を追加してみます。「after」オプションを使います。
1 2 3 4 5 |
mysql> alter table kamo_table add column test_int2 int not null after name; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> |
以下の通り、nameの後ろに追加されたことがわかります!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> show columns from kamo_table; +-----------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------+------+-----+-------------------+-----------------------------+ | id | int(11) | NO | PRI | 0 | | | name | text | NO | | NULL | | | test_int2 | int(11) | NO | | NULL | | | update_ts | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | | test_int | int(11) | NO | | NULL | | +-----------+-----------+------+-----+-------------------+-----------------------------+ 5 rows in set (0.01 sec) mysql> |