MySQLでテーブル名を変更するには、通常RENAME TABLE
を利用します。
RENAME TABLE old_table TO new_table;
テーブル名の変更はSQLの標準規格には存在しません。そのため各DBが独自の実装をしているのが現状です。これもMySQLでの利用方法ですので、他のDBを使う際にはご注意ください。
テーブルの名称変更
RENAME TABLE
単純に名称を変更するだけであれば、RENAME TABLE
で一発です。
RENAME TABLE old_table TO new_table;
テーブルだけではなくVIEWに対しても行うことができます。
ALTER TABLE
RENAME TABLE
と同様の行為をALTER TABLE
でも行うことができます。
ALTER TABLE old_table RENAME new_table;
テーブル内のカラムも同時に変更したいといった場合にはこちらを利用するのが良いでしょうか。
別のデータベースへ移動する
データベース名を付けてやると、データベース間を移動することも可能です。もちろん両方のデータベースを触れる権限は必要です。
RENAME TABLE db1.table_name TO db2.table_name;
テーブルの値を入れ替える
RENAME TABLE
は複数のコピーを同時に記述できることを利用し、一時テーブルを使ったスワップに利用することもできます。以下では最終的にa_table
とb_table
の内容が入れ替わります。
RENAME TABLE a_table TO tmp_table, /* 最初に実行 A -> TMP */
b_table TO a_table, /* 2番目に実行 B -> A */
tmp_table TO b_table; /* 最後に実行 TMP -> B */
参考ページ
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。