MySQLレプリケーションテーブル
MySQL コピーテーブル
テーブル構造、インデックス、デフォルト値などを含む MySQL データテーブルを完全にコピーする必要がある場合。 CREATE TABLE ... SELECT コマンドを使用するだけでは、これを達成することはできません。
この章では、MySQL データテーブルを完全にコピーする方法を紹介します。手順は次のとおりです:
SHOW CREATE TABLE- コマンドを使用して、作成されたデータ テーブル (
- CREATE TABLE
) を取得します。 元のデータテーブルの構造、インデックスなどが含まれるステートメント。 以下のコマンドで表示されたSQL文をコピーし、データテーブル名を変更し、上記のコマンドでSQL文を実行します。 データテーブル構造が完全にコピーされます。
テーブルの内容をコピーしたい場合は、
INSERT INTO ... SELECT ステートメントを使用してそれを実現できます。 例
次の例を試して、テーブル php_tbl をコピーしてください。
データテーブルの完全な構造を取得します。
mysql> SHOW CREATE TABLE php_tbl \G; *************************** 1. row *************************** Table: php_tbl Create Table: CREATE TABLE `php_tbl` ( `php_id` int(11) NOT NULL auto_increment, `php_title` varchar(100) NOT NULL default '', `php_author` varchar(40) NOT NULL default '', `submission_date` date default NULL, PRIMARY KEY (`php_id`), UNIQUE KEY `AUTHOR_INDEX` (`php_author`) ) ENGINE=InnoDB 1 row in set (0.00 sec) ERROR: No query specified
ステップ 2:
SQL ステートメントのデータテーブル名を変更し、SQL ステートメントを実行します。
mysql> CREATE TABLE `clone_tbl` ( -> `php_id` int(11) NOT NULL auto_increment, -> `php_title` varchar(100) NOT NULL default '', -> `php_author` varchar(40) NOT NULL default '', -> `submission_date` date default NULL, -> PRIMARY KEY (`php_id`), -> UNIQUE KEY `AUTHOR_INDEX` (`php_author`) -> ) ENGINE=InnoDB; Query OK, 0 rows affected (1.80 sec)
ステップ 3:
2 番目のステップを実行した後、データベースに新しいクローン テーブル clone_tbl を作成します。
データテーブル内のデータをコピーしたい場合は、 INSERT INTO... SELECT
ステートメントを使用してこれを実現できます。 mysql> INSERT INTO clone_tbl (php_id, -> php_title, -> php_author, -> submission_date) -> SELECT php_id,php_title, -> php_author,submission_date -> FROM php_tbl; Query OK, 3 rows affected (0.07 sec) Records: 3 Duplicates: 0 Warnings: 0上記の手順を実行した後、テーブル構造とテーブルデータを含むテーブルを完全にコピーします。 関連チュートリアルの推奨事項: