MySQL

MySQLでテーブルまるごとコピーする2つの方法。コマンドとPhpMyAdmin

バックアップの意味合いや、データを変更したりする時のテスト用等で、MySQLでテーブルをまるっとコピーしたい時があります。

今回は、MySQLでテーブル構造とデータの中身、そしてインデックス構造もそのままコピーする方法を、コマンド入力とphpMyAdminでの方法をそれぞれ説明します。

テーブルコピーの方法(コマンド)

■ステップ1:コピー元と同じ構造の空テーブルを作成する。
■ステップ2:コピー元テーブルから新テーブルへデータをコピーする。

コピー完了(^^)

phpMyAdminでのテーブルコピー方法

ステップ1:phpMyAdminにログインする。
ステップ2:コピー元となるテーブルをクリックする。
ステップ3:メニューバーの「操作」タブをクリックする。
ステップ4:「テーブルを (データベース).(テーブル) にコピーする:」のブロック内を設定実行する

①コピーするテーブル名を入力(デフォルトはコピー元のテーブル)
②「構造とデータ」のラジオボタンを選択
③「実行」をクリック

コピー完了(^^)

コマンドライン入力に慣れていない人は、この方法が一番カンタンです。

phpMyAdminを使った「ダメ」なテーブルコピー例

今ほど説明した方法以外にもphpMyAdmin内でコピーすることが可能です。

【やり方】
①画面左から対象データベースを選択する。
②構造タブを選択する。
③コピー元のテーブルを選択する。
④「チェックしたものを:」をクリックし、「接頭辞を付け替えてテーブルをコピーする」を選択する。

以上の方法でもテーブルをコピーすることができます。

但し、

致命的なことにテーブルのインデックスやAUTO_INCREMENT(自動的に連番を降ってくれる設定)がコピーされないので、この機能は使わない方が良いかと思います。

まとめ

以上でMySQLのテーブルをデータ、構造、インデックスを含め全コピーする方法を2つとダメな例を1つ説明しました。

MySQLに限らずデータベース関係は、アンドゥが効かないので、何か特別な操作をする時はバックアップを確実に取っておいてください。

超重要です。