バックアップの意味合いや、データを変更したりする時のテスト用等で、MySQLでテーブルをまるっとコピーしたい時があります。
今回は、MySQLでテーブル構造とデータの中身、そしてインデックス構造もそのままコピーする方法を、コマンド入力とphpMyAdminでの方法をそれぞれ説明します。
テーブルコピーの方法 : コマンド入力編
- STEP.1コピー元と同じ構造の空テーブルを作成する。
CREATE TABLE 新テーブル名 LIKE 元テーブル名;
- STEP.2コピー元テーブルから新テーブルへデータをコピーする。
INSERT INTO 新テーブル名 SELECT * FROM 元テーブル名;
コピー完了(^^)
テーブルコピーの方法 : phpMyAdmin編
- STEP.1phpMyAdminにログインする。
- STEP.2コピー元となるテーブルをクリックする。
- STEP.3メニューバーの「操作」タブをクリックする。
- STEP.4「テーブルを (データベース).(テーブル) にコピーする:」のブロック内を設定実行する
- コピーするテーブル名を入力(デフォルトはコピー元のテーブル)
- 「構造とデータ」のラジオボタンを選択
- 「実行」をクリック
コピー完了(^^)
コマンドライン入力に慣れていない人は、この方法が一番カンタンです。
phpMyAdminを使った「ダメ」なテーブルコピー例
今ほど説明した方法以外にもphpMyAdmin内でコピーすることが可能です。
- 画面左から対象データベースを選択する。
- 構造タブを選択する。
- コピー元のテーブルを選択する。
- 「チェックしたものを:」をクリックし、「接頭辞を付け替えてテーブルをコピーする」を選択する。
以上の方法でもテーブルをコピーすることができます。
まとめ
以上でMySQLのテーブルをデータ、構造、インデックスを含め全コピーする方法を2つとダメな例でした。
MySQLに限らずデータベース関係は、アンドゥが効かないので、何か特別な操作をする時はバックアップを確実に取っておいてください。
コメント