目次
1. はじめに
MySQLデータベースを扱う中で、テーブル名を変更する必要が出てくる場面があるでしょう。例えば、テーブル名がプロジェクトの変更に伴い適切でなくなったり、システムの改修により整理が求められたりすることが考えられます。本記事では、MySQLでのテーブル名の変更方法について、基本的なコマンドの使用方法から注意すべきポイントまで、詳しく解説します。2. テーブル名変更の基本的な方法
テーブル名を変更するには、MySQLでは2つの主要な方法があります。それぞれの使用方法と特徴を以下に紹介します。RENAME TABLE文の使用
「RENAME TABLE」は、MySQLにおいてテーブル名を変更する最もシンプルな方法です。この文を使用すると、即座にテーブル名が変更されます。以下のように記述します。RENAME TABLE old_table_name TO new_table_name;
使用例:
もし「users_old」というテーブル名を「users」に変更したい場合、次のコマンドを使用します。RENAME TABLE users_old TO users;
注意点:
- RENAME TABLE文を使用すると、変更は即座に反映されますが、操作中にテーブルがロックされます。
- このコマンドを使用するには、テーブルに対する権限が必要です。
ALTER TABLE文の使用
もう一つの方法として、「ALTER TABLE」文を使った方法もあります。この方法でもテーブル名の変更が可能です。構文は次の通りです。ALTER TABLE old_table_name RENAME TO new_table_name;
使用例:
「products_old」というテーブルを「products」に変更したい場合は、次のように記述します。ALTER TABLE products_old RENAME TO products;
注意点:
- ALTER TABLE文でもテーブルがロックされることに注意が必要です。
- 一部のMySQLバージョンでは、RENAME TABLE文の方がパフォーマンスに優れる場合があります。

3. 複数のテーブル名を一括で変更する方法
一度に複数のテーブル名を変更したい場合、RENAME TABLE文が役立ちます。MySQLでは一度に複数のテーブルの名前を変更することが可能で、手間を減らし、時間の短縮につながります。RENAME TABLE table1 TO new_table1, table2 TO new_table2;
使用例:
例えば、「orders_old」と「customers_old」というテーブル名を、それぞれ「orders」と「customers」に変更したい場合、次のように実行します。RENAME TABLE orders_old TO orders, customers_old TO customers;
注意点:
- 複数のテーブルを同時に変更する場合も、それぞれのテーブルがロックされるため、作業前に他のプロセスの影響を確認することが重要です。
4. データベース間でのテーブル移動
MySQLでは、異なるデータベース間でテーブルを移動させながら名前を変更することも可能です。この操作もRENAME TABLE文を使います。RENAME TABLE db1.table_name TO db2.table_name;
使用例:
「old_database」というデータベースにある「employees」テーブルを「new_database」に移動させたい場合は、次のように記述します。RENAME TABLE old_database.employees TO new_database.employees;
注意点:
- この操作には、元のデータベースと移動先のデータベースの両方に対する適切な権限が必要です。
- テーブルの移動中もロックがかかるため、データベース間の移動が業務に影響を及ぼさないか確認してから実行しましょう。
