English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL クローンテーブル

MySQLのデータベーステーブルを完全にコピーする必要がある場合、テーブルの構造、インデックス、デフォルト値などが含まれます。 ただでさえCREATE TABLE ... SELECT コマンドは実行できません。

本節では、MySQLデータベーステーブルを完全にコピーする方法について説明します。以下のステップで実行します:

  • を使用して SHOW CREATE TABLE コマンドを使用してデータベーステーブルの作成を取得します。CREATE TABLE) このコマンドは、元のデータベーステーブルの構造、インデックスなどが含まれる文です。

  • 以下のコマンドで表示されたSQL文をコピーし、データベーステーブル名を変更してSQL文を実行します。 データベーステーブルの完全な構造をコピーします。

  • テーブルの内容をコピーしたい場合は、以下を使用します。 INSERT INTO ... SELECT 文を実行することで達成できます。

オンラインサンプル

テーブル w をコピーするための以下の例を試みます。3codebox_tbl 。

ステップ1:

データベーステーブルの完全な構造を取得します。

mysql> SHOW CREATE TABLE w3codebox_tbl \G;
*************************** 1. row ***************************
       Table: w3codebox_tbl
Create Table: CREATE TABLE `w3codebox_tbl` (
  `w3codebox_id` int(11) NOT NULL auto_increment,
  `w3codebox_title` varchar(100) NOT NULL default '',
  `w3codebox_author` varchar(40) NOT NULL default '',
  `submission_date` date default NULL,
  PRIMARY KEY  (`w3codebox_id`),
  UNIQUE KEY `AUTHOR_INDEX` (`w3codebox_author`)
) ENGINE=InnoDB 
1 row in set (0.00 sec)
ERROR:
No query specified

ステップ2:

SQL文のデータベーステーブル名を変更し、SQL文を実行します。

mysql> CREATE TABLE `clone_tbl` (
  -> `w3codebox_id` int(11) NOT NULL auto_increment,
  -> `w3codebox_title` varchar(100) NOT NULL default '',
  -> `w3codebox_author` varchar(40) NOT NULL default '',
  -> `submission_date` date default NULL,
  -> PRIMARY KEY  (`w3codebox_id`),
  -> UNIQUE KEY `AUTHOR_INDEX` (`w3codebox_author`)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (1.80 sec)

ステップ3:

第2ステップを実行すると、データベースに新しいクローンテーブル clone_tbl が作成されます。 データテーブルのデータをコピーしたい場合は、以下の INSERT INTO... SELECT 文を実行することで達成できます。

mysql> INSERT INTO clone_tbl (w3> codebox_id,
    ->                        w3> codebox_title,
    ->                        w3> codebox_author,
    ->                        submission_date)
    -> SELECT w3> codebox_id,w3> codebox_title,
    ->        w3> codebox_author,submission_date
    -> FROM w3codebox_tbl;
Query OK, 3 rows affected (0.07 sec)
レコード: 3  重複: 0  警告: 0

以上のステップを実行すると、テーブルの構造とテーブルデータを含むテーブルの内容が完全にコピーされます。