MySQL テーブルの複製(コピー)を作成する
- 2011.04.28
- MySQL
テーブルデータを大量に変更したり、削除するとき、テスト用にテーブルの複製(コピー)が欲しいときがある。
コピーしたテーブルに対して、 SQLを発行してうまくいったら、本番用のテーブルに対して作業を行えば良い。
作業は2ステップ、作業時間は3分もかからない。気軽にテスト用のテーブルを作って色々なSQLにチャレンジできるのが嬉しい。
■空テーブルを作成する
元テーブルと同じフィールドを持つ空テーブルを作成する。
mysql> create table books2 like books;
■データをコピーする
INSERT文を実行する。
mysql> insert into books2 select * from books; Query OK, 8765 rows affected (0.26 sec) Records: 8765 Duplicates: 0 Warnings: 0
1秒もかからずにコピー完了。
■参考情報:空テーブルを作成する(手作業編)
元テーブルと同じフィールドを持つ空テーブルを作成する。
元テーブルのCREATE TABLE文を調べる。
mysql> show create books; ...省略... | books | CREATE TABLE `books` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `book_name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=10289 DEFAULT CHARSET=utf8 | ...省略...
調べたCREATE文をテキストエディタでコピーして、books を books2 に変更する。
その変更したCREATE文をコピーペーストして実行する。
mysql> CREATE TABLE `books2` ( -> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, -> `book_name` varchar(100) DEFAULT NULL, -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM AUTO_INCREMENT=10289 DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.07 sec)
-
前の記事
Solarisに複数のPHPをインストールする 2011.03.31
-
次の記事
SolarisにSQLCipherをインストール 2012.11.07