MySQLで既に作成したテーブルの構造を変更する(フィールド名の変更、各種属性の付加など)
投稿日:
MySQLでテーブルを作成した後、何らかの事情でテーブルの構造を(データを保持しながら)変更しなければならなくなることもあるでしょう。このページではそのような時のためのテーブル構造変更手順を解説します。もくじ
- テーブル名・フィールド名を変更する
- フィールドを追加する
- フィールドに何らかの属性を付加/削除する
- フィールドを削除する
テーブル名・フィールド名を変更する
以下、データベース名は「database_name」で、テーブル名やフィールド名は「hoge」などの文字列で表します。各自の環境に合わせて適宜読み替えてください。
テーブル名やフィールド名を変更する場合は、コマンドラインかphpMyAdminで以下のSQL文を実行することになります。 [mysql] #テーブル名を変更 ALTER TABLE database_name.hoge RENAME database_name.piyo; #フィールド名を変更 ALTER TABLE database_name.hoge CHANGE COLUMN fuga foo INT; #旧フィールド名はfuga 新フィールド名はfoo #新フィールド名の後ろにはフィールドのデータ型や属性を全部記述する [/mysql]
phpMyAdminからSQL文を実行する場合は、「SQL」タブにアクセスしてテキスト入力欄に実行したいSQL文を書き、「実行」ボタンを押せばOKです。なお、左カラムにあるデータベース・テーブルのリストから任意のデータベースにアクセスしており現在アクセス中のデータベース内のテーブルを操作する場合は、必ずしもデータベース名から記述する必要はありません(database_name. の部分を書かずにいきなりテーブル名を記述しても動作します)。
無事にSQL文が実行されました。
ちなみに、フィールド名を変更する際に操作対象のフィールドのデータ型や属性の記述を変更すると、フィールドのデータ型や属性を変更する操作になります(後述)。
既存のフィールドのデータ型や属性を確かめたい場合は、左カラムで任意のテーブルを選択してから「構造」タブにアクセスしましょう。
フィールドを追加する
あるテーブルに新しいフィールドを追加する場合は、以下のSQL文を実行します。 [mysql] ALTER TABLE database_name.hoge ADD piyo TEXT CHARACTER SET utf8; #ADDの後ろに新フィールド名を記述し、 #その後ろには新フィールドのデータ型、属性を記述する [/mysql]
フィールドに何らかの属性を付加/削除する
あるテーブルのあるフィールドに新しい属性を付加したり、既存の属性を削除したり、データ型を変更したりする場合は以下のSQL文を実行します。 [mysql] ALTER TABLE database_name.hoge MODIFY piyo INT UNSIGNED PRIMARY KEY; #MODIFYの後ろにフィールド名を記述し、 #フィールド名の後ろに新しいデータ型や属性を記述する [/mysql]
フィールドを削除する
あるテーブルからあるフィールドを削除する場合は、以下のSQL文を実行します。 [mysql] ALTER TABLE database_name.hoge DROP piyo; #DROPの後ろに削除するフィールドの名前を書く [/mysql]
参考リンク