MySQL 特定のデータをコピーする
テーブルごとコピーとかではなく、特定のテーブルの、特定のデータをコピーしたい場合です。
下記のように、一度temporaryテーブルにデータを入れるという方法を使います。
フィールド数が多くても、これなら記述もシンプルで済みます。
大体がprimary_keyがuniqueとなっているために、”Duplicate entry ‘xxx’ for key 1″というエラーが出ることが多いと思いますが、そこのところもtemporaryテーブルで一度処理してあります。
//roots というテーブルの、id 608番を同じrootsテーブルにコピーする CREATE TEMPORARY TABLE tmptable_1 SELECT *FROM root_details WHERE id =608; //idがprimary keyで一意のため、一度idはNULLに変更 UPDATE tmptable_1 SET id = NULL ,root_id =100; INSERT INTO roots SELECT * FROM tmptable_1; DROP TEMPORARY TABLE IF EXISTS tmptable_1;